rsnext/errors/invalid-getstaticpaths-value.md
Joe Haddad 47ff1eb95a
Ability to Disable SSG Fallback (#10701)
* Ability to Disable SSG Fallback

* Throw error when value is missing

* Fix existing tests

* Adjust error message

* Do not render fallback at build time for `fallback: false` page

* Fix existing fallback behavior

* fix build

* fix version

* fix some tests

* Fix last test

* Add docs for get static paths

* Add explicit mode tests

* test for fallback error message
2020-02-27 13:23:28 +01:00

2.1 KiB

Invalid unstable_getStaticPaths Return Value

Why This Error Occurred

In one of the page's unstable_getStaticPaths the return value had the incorrect shape.

Possible Ways to Fix It

Make sure to return the following shape from unstable_getStaticPaths:

export async function unstable_getStaticPaths() {
  return {
    paths: Array<string | { params: { [key: string]: string } }>,
    fallback: boolean
  }
}

There are two required properties:

  1. paths: this property is an Array of URLs ("paths") that should be statically generated at build-time. The returned paths must match the dynamic route shape.
    • You may return a String or an Object that explicitly defines all URL params.
      // pages/blog/[slug].js
      export async function unstable_getStaticPaths() {
        return {
          paths: [
            // String variant:
            '/blog/first-post',
            // Object variant:
            { params: { slug: 'second-post' } },
          ],
          fallback: true,
        }
      }
      
  2. fallback: this property is a Boolean, specifying whether or not a fallback version of this page should be generated.
    • Enabling fallback (via true) allows you to return a subset of all the possible paths that should be statically generated. At runtime, Next.js will statically generate the remaining paths the first time they are requested. Consecutive calls to the path will be served as-if it was statically generated at build-time. This reduces build times when dealing with thousands or millions of pages.
    • Disabling fallback (via false) requires you return the full collection of paths you would like to statically generate at build-time. At runtime, any path that was not generated at build-time will 404.