Observation, filed unassigned. Measured while browser-verifying the Deploy rewrite (#59); it is not caused by that change.
What was measured
Production build of apps/docs (pnpm run build, then next start), driven with headless Chromium. Every page navigated logs exactly one pageerror:
Minified React error #418; visit https://react.dev/errors/418?args[]=HTML&args[]=
Pages checked, all identical: /docs/architecture, /docs/quickstart, /docs/deploy/docker (rewritten), /docs/deploy/air-gapped (rewritten), /zh-Hans/docs/deploy/air-gapped. Untouched pages and rewritten pages behave the same, which is what makes it a pre-existing site-wide condition rather than a content defect.
Error 418 is a hydration mismatch: the server-rendered HTML does not match what the client renders on first pass, so React discards the server markup for that subtree and re-renders it on the client.
Why it is worth a look
Nothing is visibly broken, so this could sit here indefinitely. But it is worth closing because a standing hydration error costs a client re-render on every page load, and — more expensively for whoever debugs the next real UI bug — it makes the console noisy enough that a genuine error blends in.
Likely candidates, in order: a theme or locale value read at render time, or a timestamp / locale-formatted string rendered without being pinned to a deterministic value. A non-minified dev build names the offending subtree directly.
Observation, filed unassigned. Measured while browser-verifying the Deploy rewrite (#59); it is not caused by that change.
What was measured
Production build of
apps/docs(pnpm run build, thennext start), driven with headless Chromium. Every page navigated logs exactly onepageerror:Pages checked, all identical:
/docs/architecture,/docs/quickstart,/docs/deploy/docker(rewritten),/docs/deploy/air-gapped(rewritten),/zh-Hans/docs/deploy/air-gapped. Untouched pages and rewritten pages behave the same, which is what makes it a pre-existing site-wide condition rather than a content defect.Error 418 is a hydration mismatch: the server-rendered HTML does not match what the client renders on first pass, so React discards the server markup for that subtree and re-renders it on the client.
Why it is worth a look
Nothing is visibly broken, so this could sit here indefinitely. But it is worth closing because a standing hydration error costs a client re-render on every page load, and — more expensively for whoever debugs the next real UI bug — it makes the console noisy enough that a genuine error blends in.
Likely candidates, in order: a theme or locale value read at render time, or a timestamp / locale-formatted string rendered without being pinned to a deterministic value. A non-minified dev build names the offending subtree directly.