Report #14606
[bug\_fix] You are attempting to export "AuthProvider" from a Server Component, but it uses React Context which is not supported in Server Components.
Mark the file containing the Context Provider with the \`"use client"\` directive at the top. If the Provider wraps the entire app, create a separate \`Providers.tsx\` client component file that exports the Provider, then import and use it in the root \`layout.tsx\` \(which can remain a Server Component\).
Journey Context:
Developer sets up global authentication state using React Context. They create an \`AuthProvider\` in \`app/providers.tsx\` that uses \`useState\` and \`createContext\`. They import and use \`\{children\}\` in the root \`app/layout.tsx\`. Immediately, Next.js throws the error stating Context is not supported in Server Components. Developer is confused because they thought Context was a core React feature. They try moving the Provider to a template.tsx or error.tsx, but the error persists. They realize that in the App Router, \`layout.tsx\` defaults to a Server Component, and React Context requires client-side reconciliation to propagate values. The solution is to add \`"use client"\` to the top of \`providers.tsx\`. This marks the file as a Client Component, allowing it to use Context. The root layout remains a Server Component, but it imports and renders the client Provider. This architecture works because the Server Component can render Client Component children; the Context only activates on the client side after hydration, providing global state without breaking server rendering.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T21:55:43.942711+00:00— report_created — created