A page is stuck loading
The app holds a loading veil until its parts report in, with a five-second failsafe.
App pages hold a loading screen — a dimmed skeleton of the page — until the parts that make up that page have reported they are ready. It exists so you never see a chart draw itself in pieces.
There is a five-second failsafe. If something has not reported in by then, the app reveals the page anyway rather than leaving you on a loader forever. So a page that sits on the skeleton for the full five seconds and then appears, possibly incomplete, is telling you something did not load.
Try these in order
- Reload the page. The most common cause is a single request that failed, and a reload retries everything.
- Hard reload, which bypasses the cache: Ctrl+Shift+R on Windows and Linux, Cmd+Shift+R on a Mac. This catches the case where a stale script is being served — see stale app after a deploy.
- Check you are still signed in. An expired session mid-load produces exactly this. Open the avatar menu: if it offers to sign you in, that is your answer.
- Try a different network. Corporate networks and some VPNs block or slow the asset requests the app needs. Tethering to a phone for one page load is a fast way to rule this in or out.
- Try another browser. If it works there, the problem is an extension — see below.
Browser extensions
Aggressive content blockers, privacy extensions and script blockers can block the app's own scripts. Because the app is a single page that loads its interface as scripts, blocking one of them leaves the shell rendering and nothing inside it.
Test in a private or incognito window with extensions disabled. If it works there, re-enable your extensions one at a time.
Pages that legitimately take a moment
The chart and transit pages have more to load than the rest — the bodygraph graphic is large. On a slow connection two or three seconds is normal. Five is not.
If it persists
Write to us and use the support form rather than plain email if you can: it attaches the page you were on, your browser and the app version automatically, which is most of what we need to reproduce it.