next.js/errors/next-request-in-use-cache.mdx
next-request-in-use-cache.mdx52 lines1.4 KB
---
title: Cannot access `cookies()` or `headers()` in `"use cache"`
---

## Why This Error Occurred

A function is trying to read from the current incoming request inside the scope of a function annotated with `"use cache"`. This is not supported because it would make the cache invalidated by every request which is probably not what you intended.

## Possible Ways to Fix It

Instead of calling this inside the `"use cache"` function, move it outside the function and pass the value in as an argument. The specific value will now be part of the cache key through its arguments.

Before:

```jsx filename="app/page.js" highlight={5}
import { cookies } from 'next/headers'

async function getExampleData() {
  "use cache"
  const isLoggedIn = (await cookies()).has('token')
  ...
}

export default async function Page() {
  const data = await getExampleData()
  return ...
}
```

After:

```jsx filename="app/page.js" highlight={9}
import { cookies } from 'next/headers'

async function getExampleData(isLoggedIn) {
  "use cache"
  ...
}

export default async function Page() {
  const isLoggedIn = (await cookies()).has('token')
  const data = await getExampleData(isLoggedIn)
  return ...
}
```

## Useful Links

- [`headers()` function](/docs/app/api-reference/functions/headers)
- [`cookies()` function](/docs/app/api-reference/functions/cookies)
- [`draftMode()` function](/docs/app/api-reference/functions/draft-mode)
Quest for Codev2.0.0
/
SIGN IN