## TL;DR
Either wrap the headers() usage in Suspense or mark the route dynamic. The build passes once the dynamic usage is isolated.

## The exact error
```text
Dynamic server usage: Page couldn't be rendered statically because it used `headers`
```

## Steps to fix
1. Find where headers() or cookies() is called in the page the error names
2. Option A: move that call into a child component wrapped in [Suspense]
3. Option B: add export const dynamic = 'force-dynamic' to the page if the whole page is dynamic anyway
4. Rebuild and confirm the prerender error is gone

## When this applies
- Next.js 13+ app router
- A statically prerendered page calls headers(), cookies(), or similar request APIs

## When this does NOT apply
- Pages router
- Routes already marked dynamic

## Tool + versions
Next.js 13+ app router

## Why it happens
headers() needs a real request, which does not exist during static prerendering. Next.js reports exactly which dynamic API blocked the static render.

## Edge cases
- searchParams prop in pages has the same effect
- Suspense keeps the rest of the page static; force-dynamic makes the whole route dynamic

## Where this came from
Resolved from a real public thread: https://nextjs.org/docs/messages/dynamic-server-error (docs:dynamic-server-error).