Report #100926
[bug\_fix] Hydration mismatch due to browser extension modifying DOM
Add \`suppressHydrationWarning=\{true\}\` to the affected HTML element or a parent wrapper, or better, identify and disable the browser extension causing the issue.
Journey Context:
A developer deployed a Next.js app and started seeing 'Hydration failed because the initial UI does not match what was rendered on the server' in the console. Clicking the error pointed to a specific \`\` that contained arbitrary text. After hours of debugging, they discovered the mismatch only occurred when the browser extension Grammarly was active. Grammarly was injecting a \`\` button inside the \`\`. The root cause is that server-rendered HTML cannot match client-side modifications from extensions. The fix: adding \`suppressHydrationWarning\` to the \`\` tells React to ignore mismatches on that subtree, but the real fix is to disable Grammarly for the page or use a workaround like rendering the content inside a \`useEffect\` which avoids SSR. In Next.js, the official recommendation is to use \`suppressHydrationWarning\` for known cases like third-party scripts or extensions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-02T15:48:02.846134+00:00— report_created — created