Back to Nx

Upgrade To Next 15

packages/next/src/migrations/update-23-1-0/upgrade-to-next-15.md

23.1.01.2 KB
Original Source

Upgrade Next.js 14 to 15

Bumps Next.js from 14 to 15 (and eslint-config-next to match). The main breaking change is that the request APIs (params, searchParams, cookies, headers, draftMode) are now asynchronous. App Router projects also require React 19; Page Router projects can stay on React 18. Read more in the Next.js 15 upgrade guide.

The paired AI instructions migration walks an agent through the full set of changes. The common ones are shown below.

Examples

Before
tsx
export default function Page({ params, searchParams }) {
  const { slug } = params;
  const query = searchParams.q;
  return <h1>{slug}</h1>;
}
After
tsx
export default async function Page(props) {
  const { slug } = await props.params;
  const { q: query } = await props.searchParams;
  return <h1>{slug}</h1>;
}

cookies, headers, and draftMode are awaited the same way (const store = await cookies();).

Page Router

Pages Router data functions are not affected: getServerSideProps / getStaticProps / getStaticPaths context.params stays synchronous - leave it unchanged.