The auto-reconnect reload-looped every page into a blank screen

FixKlusterServices
Shipped
August 26, 2026 at 2:34 AM UTC
Author
Kamo
Commit
f04181e

I shipped this and it took the desktop down: a blank white page and a tab loading forever. Disabled in-cluster immediately; this is the real fix. `ng-switch` sits on <body>, so BEFORE Angular compiles, every ng-switch-when branch is present in the raw HTML — the fatal-error one included. Matching the selector therefore matched on every single page load, so the script decided the app had died before it had even started, and reloaded. Forever. The test I added last time asserted the selector appears in Guacamole's markup. It does. That was exactly the problem: it is ALWAYS there. The test confirmed the selector was spelled correctly and said nothing about whether matching it meant anything — which is the only question that mattered. So the question is now a pure function with four independent guards, each one tested and each one alone sufficient to prevent a reload: - the element is present - <body> no longer carries ng-cloak, i.e. Angular has actually compiled - the element is really rendered (if Angular never boots, ng-cloak keeps it hidden — and a page that never started is not a session that dropped) - it has been seen for three consecutive checks plus a ten-second grace period after load, because a reload loop is the worst thing this script can do and a young page is where one starts. Verified by putting the outage-causing logic back: 4 of the 18 tests fail, naming the pre-bootstrap markup case. Nothing it draws can obscure the app any more either. The full-screen overlay is now a dismissible top banner: an overlay is fine when the page is genuinely dead and actively harmful when it is not, and this script has already been too sure of itself once. Worst case is now a banner and at most five reloads, with Stop and Dismiss, over a page that stays usable underneath.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing