Report #74399
[bug\_fix] Hydration failed because the initial UI does not match \(Invalid HTML nesting: e.g., inside \)
Restructure the JSX to follow valid HTML nesting rules \(e.g., replace block-level elements like with inline elements like when inside , or restructure the layout to avoid invalid descendants like inside \).
Journey Context:
Developer writes a component that renders a tag containing a child component. That child component renders a or another . When the page loads, React throws a hydration error or a warning about validateDOMNesting: cannot appear as a descendant of . Developer inspects the Elements tab and sees that the browser has automatically closed the tag early \(due to HTML parsing rules\), creating a mismatch between the server-sent HTML structure and React's expected virtual DOM tree. Developer tries adding keys or fragments, but the error persists because it's an HTML validity issue, not a React key issue. After checking the React hydration error link, they realize that HTML has strict content models \(e.g., can only contain phrasing content\). They refactor the parent to use a or instead of , or change the child to use a with display: block styling, resolving the hydration mismatch.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T07:28:41.355779+00:00— report_created — created