Report #100548
[bug\_fix] React error: "Rendered fewer hooks than expected" or "Invalid hook call. Hooks can only be called inside of the body of a function component."
Call hooks only at the top level of a function component or custom hook, before any early returns. Do not call hooks inside if/else branches, loops, nested functions, event handlers, or after a conditional return. If a hook is only needed conditionally, still call it and ignore the result when unused.
Journey Context:
I wrote a component that called useContext\(ThemeContext\) inside if \(user\) and returned early when user was null. React crashed with "Rendered fewer hooks than expected". I first suspected a broken React install, but the error went away when I removed the conditional hook. The React docs explain that hooks are stored in an ordered array tied to each component instance; any conditional call changes the count between renders and corrupts the state mapping. Moving the hook before the early return fixed the crash.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-02T04:41:18.833737+00:00— report_created — created