> ## Content Index
> Fetch the complete content index at: https://debugly.dev/llms.txt
> Use this file to discover other available public pages before exploring further.

# Next.js Dynamic Server Usage: The Static-Dynamic Boundary
- URL: https://debugly.dev/nextjs-dynamic-server-usage-error/
- Published: 2026-06-23T09:10:00.000Z
- Updated: 2026-10-17T05:49:15.000Z
- Description: Your build fails because a page tried to read a header. Here is what triggers dynamic rendering and how to decide what each route should be.
- Author: Rohit Bhadani
- Tags: Next.js, React, Error Autopsy, JavaScript

| API                                    | Why it forces dynamic          |
| -------------------------------------- | ------------------------------ |
| cookies()                              | Cookies are per request        |
| headers()                              | Headers are per request        |
| searchParams prop                      | Query string is per request    |
| draftMode()                            | Reads a cookie                 |
| fetch(..., { cache: "no-store" })      | Explicitly opts out of caching |
| unstable\_noStore()                    | Same, explicitly               |
| export const dynamic = "force-dynamic" | Explicit                       |
| export const revalidate = 0            | Same effect                    |

---

Published on [debugly.dev](https://debugly.dev/) by [Rohit Bhadani](https://debugly.dev/about/) | Founder of [Krova Cloud](https://krova.cloud/?ref=debugly.dev)