Back to Next Js

`generateStaticParams` Error

errors/generate-static-params.mdx

16.3.01.9 KB
Original Source

Why This Error Occurred

Next.js expects generateStaticParams to return an array containing one params object for each route to generate.

This error occurs when:

  • generateStaticParams returns a value that is not an array, or
  • an item in the returned array is not a plain object. This includes null, arrays, primitive values, and undefined.

Possible Ways to Fix It

Return an array of params objects from generateStaticParams:

tsx
export function generateStaticParams() {
  return [{ slug: 'first-post' }, { slug: 'second-post' }]
}

See the generateStaticParams return value documentation for the expected shape.

Using output: 'export'

When your application uses output: 'export', every Dynamic Route, such as app/blog/[slug]/page.tsx, must be rendered at build time.

This error also occurs when a dynamic route:

  • does not export a generateStaticParams function,
  • returns an empty array from generateStaticParams, or
  • generates a route without every dynamic route parameter. For example, { slug: 'first' } does not provide the id value for a route using an [id] segment.

When multiple route segments export generateStaticParams, Next.js combines the params returned by each parent and child function before generating routes.

Export generateStaticParams from every dynamic route and make sure the combined params include all dynamic route parameters for every generated route. If the paths cannot be known at build time, remove output: 'export' from your Next.js configuration.