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.