You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(webapp): make stale-asset recovery version-aware
Instead of blindly reloading on a /build asset failure, the recovery
script now polls a new /build-version endpoint (no-store) with backoff
and reloads only once the server reports a different build than the one
the page was rendered with (window.__remixManifest.version). If the
versions never diverge - the asset failed for some other reason - or the
reload budget is spent, it shows a manual-reload banner instead of
leaving a dead page. Turns a speculative reload into a deterministic
wait for a compatible deployment state.
Copy file name to clipboardExpand all lines: .server-changes/stale-deploy-asset-recovery.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,4 +3,4 @@ area: webapp
3
3
type: fix
4
4
---
5
5
6
-
Fix intermittent unstyled/broken pages during rolling deploys, caused by stale HTML requesting `/build` asset hashes that 404 on the new image. Documents now default to `Cache-Control: no-cache` so browsers always revalidate HTML, and an inline script reloads the page (max twice) when a `/build` asset fails to load.
6
+
Fix intermittent unstyled/broken pages during rolling deploys, caused by stale HTML requesting `/build` asset hashes that 404 on the new image. Documents now default to `Cache-Control: no-cache` so browsers always revalidate HTML. On a `/build` asset failure, an inline script polls the new `/build-version` endpoint with backoff and reloads only once the server reports a different build than the page was rendered with; if versions never diverge or the reload budget is spent, it shows a manual-reload banner instead of leaving a dead page.
0 commit comments