Skip to main content

Diagnosing a blocked deployment

Most reports of "MedJot is broken" on a managed network resolve to one of four causes. This should identify which in a couple of minutes.

Start here: check the certificate issuer

On an affected device, open https://medjot.app and inspect the certificate.

IssuerMeaning
Let's Encrypt (chaining to ISRG Root X1)Genuine. Not an interception problem — continue below.
Anything elseThe connection is being intercepted. Go to TLS inspection.

On iOS: tap the padlock or use Safari's site information. On desktop: click the padlock → certificate details.

This single check resolves the majority of cases.

Symptom: "This Connection Is Not Private"

This website may be impersonating medjot.app to steal your personal or financial information.

Cause: TLS interception with an untrusted root CA on the device.

Note there is no "visit anyway" option, because .app is HSTS-preloaded. This is a hard block by design.

Fix: do-not-decrypt exemption for medjot.app and *.medjot.app. See TLS inspection, or Cisco Umbrella if that is your gateway.

Symptom: the app opens but says it is offline

Cause: almost always the same as above. MedJot's interface is cached on the device, so it launches and looks healthy while every network request fails.

The clinician sees a working app on a device with working wifi, which is why this arrives as a bug report rather than a network ticket.

Check: the certificate issuer, as above. Then confirm the endpoints in Network requirements are reachable — particularly the Firebase hosts, without which nobody can sign in.

Symptom: sign-in fails or hangs

Cause: Firebase endpoints blocked or their WebSocket upgrade broken.

Check:

identitytoolkit.googleapis.com
securetoken.googleapis.com
firebaseinstallations.googleapis.com
*.googleapis.com
*.firebaseio.com ← needs wss:// WebSocket support

A proxy that breaks WebSocket upgrades causes account and licensing state to go stale rather than failing cleanly — worth checking specifically, because it presents as intermittent oddness rather than an error.

Symptom: reports disappear between shifts

Cause: a device or browser policy clearing website data — on exit, on a schedule, or after inactivity.

Fix: exempt medjot.app from automatic site data clearance. See Deployment and devices.

warning

Clinical data lives on the device and is not backed up anywhere. A policy that clears site data destroys unfinished reports with no recovery route, for us or for you.

Symptom: AI features fail, everything else works

Check in order:

  1. Connection quality. The globe in the app header shows green, amber or red, and its panel gives the reason. Amber means requests are failing intermittently. The connection indicator
  2. Entitlement. AI features may require Premium; a locked feature shows an explanatory panel rather than an error.
  3. Not a network fault at all. If the app reports a settled refusal rather than a connection failure, the network is fine.

Symptom: payment pages will not load

Cause: Stripe endpoints blocked.

js.stripe.com
api.stripe.com
hooks.stripe.com

If your organisation pays centrally, this does not matter — clinicians never reach these. See Organisations.

Symptom: the app will not install to the home screen

Cause: an MDM restriction on home-screen web clips, or a browser other than Safari on iOS.

MedJot works in an ordinary browser tab regardless. See Installing MedJot.

What to send us

If you have worked through the above and it is still failing, email hello@swyftscale.com with:

  • The certificate issuer the device receives — the single most useful line
  • Device, OS version and browser
  • Whether it is failing for all users or some
  • The exact error wording
  • Whether the app opens at all, and what the connection globe shows
  • Your gateway or filtering product, if you know it

We are happy to join a call with whoever manages the policy.