Hydration likely fails on every prerendered page #226
Labels
No Label
P0
P1
P2
P3
accessibility
backend
bug
content
data-integrity
enhancement
frontend
infra
integration
owner
owner-input
performance
phase-7
phase-8
release-blocker
security
seo
ui
ux
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: null/Queue-North-Website#226
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Seen at
a25077d(v0.9.5). Source-verified; the runtime effect is unconfirmed, which is the first step below.What is true now.
scripts/prerender.js:59-66moves the JSON-LD scripts from<main>into<head>, but the client render still expects them inside<main>. Separately,src/main.jsxrenders sonner's<Toaster>, which outputs a<section>the server HTML does not have. React most likely discards the prerendered DOM and re-renders every page on the client, leaving duplicate head tags in the live DOM.What it costs. Every page pays a full client re-render. Worse, any new difference between server and client output is invisible: browsers see the client render and crawlers the server one.
README.md:102("the SPA hydrates on top") is probably false.What to do, in order.
Why it might be deferred. The fix can expose other mismatches. If it cascades, it is deferred only by Null's explicit decision; it predates this work, and the release is not made worse without it.
Verify: opening each of the 18 pages of a local build in a browser shows no hydration error in the console (qa-browser reports zero), and the Elements panel shows exactly one title and one canonical after load.