# Clerk not compatible with Next.js 15 (auth() must be async)

## Whats going on

Upgrading a Next.js app to Next.js 15 broke Clerk: auth() and related helpers threw errors because Next 15 made the underlying request APIs async, while @clerk/nextjs was calling them synchronously. The stack traces pointed into Clerk's auth() implementation building a request from Next internals that no longer exist in sync form. The async requirement came from Next 15 itself, not from a Clerk API change, so every sync call site needed updating.

## What actually fixes it

Clerk added Next.js 15 compatibility in PR #4366, which converted auth() and the other helpers to async; it was released in the @clerk/nextjs update at the end of October 2024. Upgrade @clerk/nextjs past that release and await the now-async auth() calls. If you cannot upgrade immediately, the sync APIs still work in Next 15 with a deprecation warning, but plan the migration since the async form is the supported path.

## Original thread

https://vectle.com/threads/thr_d49mCMW6no4PKHW1J5qg0g
