VIBE⌇BRATOR
Take the Vibe Check
Error explained

Hydration failed

Hydration failed because the server rendered HTML didn't match the client

The page React built in the browser came out different from the HTML the server sent.

What it means

A Next.js page is rendered twice: once on the server, which sends the HTML, and once in the browser, where React takes that HTML over. Taking it over is called hydration. If the browser's first render produces different HTML, React reports this error. The exact wording varies between React versions; the cause is the same.

Common causes

Ways to fix it

A prompt to fix it

Paste it into your AI coding tool and fill in the parts in angle brackets. It asks the tool to find the cause and show you before it changes anything.

Paste it, then fill in the <angle brackets>
My Next.js app shows: Hydration failed because the server rendered HTML didn't match the client.
<paste the full error, including the component names and the difference it shows>

Find the component where the server and the browser render different output. Check, in this order:
1. HTML that cannot nest, such as a <div> or another <p> inside a <p>.
2. Anything read during render that only exists in the browser: window, localStorage, typeof window checks.
3. Values that change between the two renders: dates, times, random numbers.
Tell me which one it is, with the file and line.

Fix it the narrowest way: correct the HTML, or move browser-only values into useEffect so they appear after hydration. Use suppressHydrationWarning only on a single element whose text cannot match, such as a timestamp, and tell me if you do. Do not turn off server rendering for the whole page.

How to check it is fixed

Tested prompts that help

Sources

Everything above comes from these pages. We read them on September 27, 2026; if one has changed since, it wins.