Next.js: a Client Component cannot be async
Next.js says a Client Component cannot be an async function? React Client Components do not support async. Fetch on the server, or drop async and fetch another way.
Reviewed October 22, 2026
What it means in plain English
Next.js raises this when a Client Component is defined as an async function. React Client Components do not support async functions. A file that starts with 'use client' and then declares async function is the case the error page shows.
A hook such as useState in a Server Component is a different message. See Next.js: a client hook was used in a Server Component.
Likely causes
- The file is marked
'use client'and the component function isasync. - The component was made async so it could
awaita fetch, while it also had to stay a Client Component. - The component could have been a Server Component, which is allowed to be async.
How to fix it, step by step
- If the component can live on the server, make it a Server Component and keep
async. Next.js recommends fetching on the server. Its example is an async page that fetches JSON and renders each item's title. The path in the sample below stands in for that fetch:
export default async function Page() {
const data = await fetch('/api/posts')
const posts = await data.json()
return (
<ul>
{posts.map((post) => (
<li key={post.id}>{post.title}</li>
))}
</ul>
)
}
- If the file has to stay a Client Component, remove the
asynckeyword and fetch another way. - For client fetching, Next.js says you can call
fetchinsideuseEffect(it marks that not recommended), or use a library such as SWR or React Query. - Or pass promises into child components with a context provider, and resolve them with the
useAPI. Next.js shows that as a separate pattern: a Server Component starts the fetch, and a Client Component reads the promise withuse.
How to check it worked
- The build no longer reports that a Client Component is async.
- The data still renders, from the server fetch or from the client path you kept.
Sources
Related fixes
More Next.js errors fixes
Keep going on your own.
The guides stay free. A deep leak report is $15. Fix packs are $24, or $49 for all three. There is no done-for-you repair.