Report #69663
[bug\_fix] Text content does not match server-rendered HTML / Hydration failed
Root cause: Server-rendered HTML differs from the client's initial render, commonly caused by using \`Date.now\(\)\`, \`Math.random\(\)\`, or \`window\` access during render. Fix: Initialize time/random values inside \`useEffect\` \(runs only client-side after mount\) or add the \`suppressHydrationWarning\` prop to the element when the difference is expected \(e.g., timezones\).
Journey Context:
Developer sees a red console error in dev mode immediately on load. Checking the Network tab reveals the server-sent HTML contains a timestamp or random ID that differs from what the client calculated during hydration. The developer initially tries conditional rendering with \`typeof window \!== 'undefined'\`, but this fails because the server renders \`null\` while the client renders content, still causing a mismatch. After searching the error message, they find the React docs explaining that values dependent on the environment must be generated in \`useEffect\` or use the suppression prop for benign mismatches like clocks.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T23:24:44.622452+00:00— report_created — created