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.
| Issuer | Meaning |
|---|---|
| Let's Encrypt (chaining to ISRG Root X1) | Genuine. Not an interception problem — continue below. |
| Anything else | The 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.
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:
- 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
- Entitlement. AI features may require Premium; a locked feature shows an explanatory panel rather than an error.
- 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.