Report #94416
[bug\_fix] React Hydration Mismatch from Browser Extensions or Non-Deterministic Values
Add \`suppressHydrationWarning\` prop to the element if the mismatch is benign \(e.g., timestamps\), or gate the component to render only on the client using a \`useEffect\` mounted check to avoid server/client HTML divergence.
Journey Context:
Developer builds a Next.js 14 App Router application. Everything works in \`next dev\`, but after \`next build\` and deploy, Sentry reports 'Hydration failed because the initial UI does not match'. The developer cannot reproduce locally until they install Grammarly or LastPass extension, which injects \`\` tags into input fields server-rendered by React. Alternatively, the developer sees a mismatch because they used \`\{new Date\(\).toString\(\)\}\` in JSX, which differs between server and client. The developer tries to fix by ensuring \`useEffect\` runs only on mount to render the differing content, or adds \`suppressHydrationWarning\` to the specific element if the difference is purely cosmetic and static HTML mismatch is acceptable.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T17:03:47.718401+00:00— report_created — created