# Next.js 15: Error: Route "/blog/[slug]" used `params.slug`. `params` should be awaited before using its properties

**Code:** `Route used params.x — params should be awaited` · **Category:** Next.js · **Seen on:** Next.js, React

In Next.js 15 `params` and `searchParams` are Promises; reading properties synchronously triggers this error/warning.

## Meaning

Make the page/layout/route handler async and `await params`: `const { slug } = await params`. In Client Components use `React.use(params)`. A codemod helps: `npx @next/codemod@canary next-async-request-api .`. Same for `cookies()`, `headers()` and `draftMode()`.

## Common causes

- Upgrading to Next.js 15 without migration
- Typing `params` as an object not a Promise
- Route handlers using `context.params.id`
- generateMetadata reading params synchronously
- Client Component reading params directly

## Quick fix

1. `export default async function Page({ params }: { params: Promise<{ slug: string }> }) { const { slug } = await params; }`
2. Client: `const { slug } = use(params)`
3. Run the async-request-api codemod

## Detailed fix by platform

### Next.js

1. `npx @next/codemod@canary next-async-request-api .`

## How to diagnose

1. **Version** — Next 15+?
2. **Types** — Promise<...>?
3. **Context** — Server or client?

---
Source: [WhatIsMyError](https://whatismyerror.com/errors/nextjs/params-should-be-awaited)
