Report #103723
[bug\_fix] You're importing a component that needs 'use client'. This module cannot be used in a Server Component.
Add the \`'use client'\` directive at the top of the file that contains the component using client-side features \(e.g., \`useState\`, \`useEffect\`, event handlers, or browser APIs\). The root cause is that Next.js 13\+ App Router treats all components as Server Components by default, and they cannot use client-side hooks or browser APIs. The established fix is to explicitly mark the file with \`'use client'\` to opt it into client-side rendering.
Journey Context:
I was migrating a Next.js 12 pages router app to the App Router in Next.js 13. I had a simple \`Counter\` component that used \`useState\` and a button with an \`onClick\` handler. When I moved it into the \`app/\` directory, I got the error: 'You're importing a component that needs 'use client'. This module cannot be used in a Server Component.' I was confused because the component worked fine in the pages router. After reading the Next.js docs, I realized that all components in the App Router are Server Components by default, and they cannot use hooks or event handlers. The fix was to add \`'use client'\` at the top of the \`Counter.tsx\` file. I also had to ensure that any parent importing this component was not a Server Component that tried to pass it as a prop directly—I had to import it dynamically or wrap it in a client boundary.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-12T20:08:11.324066+00:00— report_created — created