vercel/next.js · error · Error

getStaticPaths with "fallback: true" cannot be used with…

Error message

getStaticPaths with "fallback: true" cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export

What it means

Thrown in the dev server's getStaticPaths handling for pages-router routes: with output: 'export', the page's getStaticPaths returned fallback: true. A fallback page renders shells at build time and fills them on demand at runtime, which a static export cannot do, so the combination is rejected.

Solutions

  1. Change fallback to false or 'blocking'-free config, or remove output: export.
Defensive patterns

Strategy: validation

When it happens

Trigger: getStaticPaths uses fallback: true with output: export.

Common situations: fallback: true cannot be statically exported; remove it or drop output: export.


AI-assisted analysis of vercel/next.js@996f957c06 (2026-08-19). Data as JSON: /api/errors/bbf89ec16b8b77ab. Report an issue: GitHub.

Appendix: source

Thrown at packages/next/src/server/dev/next-dev-server.ts:821

            }

            if (
              !prerenderedRoutes.some((item) => item.pathname === urlPathname)
            ) {
              throw new Error(
                `Page "${page}" is missing param "${pathname}" in "generateStaticParams()", which is required with "output: export" config.`
              )
            }
          }
        }

        if (!isAppPath && this.nextConfig.output === 'export') {
          if (fallback === FallbackMode.BLOCKING_STATIC_RENDER) {
            throw new Error(
              'getStaticPaths with "fallback: blocking" cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'
            )
          } else if (fallback === FallbackMode.PRERENDER) {
            throw new Error(
              'getStaticPaths with "fallback: true" cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'
            )
          }
        }

        const value: {
          staticPaths: string[] | undefined
          prerenderedRoutes: PrerenderedRoute[] | undefined
          fallbackMode: FallbackMode | undefined
        } = {
          staticPaths: prerenderedRoutes?.map((route) => route.pathname),
          prerenderedRoutes,
          fallbackMode: fallback,
        }

        if (
          res.value?.fallbackMode !== undefined &&
          // This matches the hasGenerateStaticParams logic we do during build.

View on GitHub (pinned to 996f957c06)