I Next.js 15 är `cookies()`, `headers()` och liknande dynamiska API:er asynkrona och måste awaitas.
Förklaring
I Next.js 15 gjordes cookies(), headers(), och draftMode() asynkrona. Det är en breaking change från Next.js 14 där de var synkrona. Läser du cookies().get('token') utan await får du ett Promise-objekt i stället för cookie-värdet.
Ändringen gjordes för att ge Next.js bättre möjligheter att optimera när och hur dessa värden beräknas. I praktiken innebär det att alla funktioner som anropar dessa API:er också måste vara async.
Vanliga orsaker
Uppgradering från Next.js 14 till 15 utan att uppdatera anrop till cookies(), headers(), eller draftMode().
Lösning
Awaita anropen och se till att den omgivande funktionen är async:
import { cookies, headers } from 'next/headers';
export default async function Page() {
const cookieStore = await cookies();
const token = cookieStore.get('token');
const headersList = await headers();
const userAgent = headersList.get('user-agent');
}Detsamma gäller i Server Actions, Route Handlers och middleware-liknande funktioner.