Report #100928
[bug\_fix] 'use client' boundary error: importing server component from client component
Either mark the imported component with \`'use client'\` at the top of its file, or wrap the server component in a separate client component that renders it as a child \(via a server component wrapper\).
Journey Context:
A Next.js App Router project had a layout file \(\`layout.tsx\`\) marked with \`'use client'\` because it used a React context provider. Inside that file, the developer imported a \`ServerComponent\` that used \`async\` data fetching and database calls. During build, they got: 'You're importing a component that needs to be a Client Component. This only works in a Server Component.' The root cause: once a file has \`'use client'\`, all components imported within it are treated as client components. The server component could not be used because it relied on server-only features. The fix: split the layout so that the \`'use client'\` part only wraps a client boundary, and keep the server component imported separately in a server layout. Alternatively, make the server component a client component by adding \`'use client'\` to its file \(but that defeats the purpose of server components\). The established pattern is to keep \`'use client'\` only in leaf components that need interactivity, and import server components in server layouts.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-02T15:48:10.152183+00:00— report_created — created