{"record":{"id":"b2e9e088e942897b","repo":"vercel/next.js","slug":"getstaticpaths-with-fallback-blocking-cannot-be","errorCode":null,"errorMessage":"getStaticPaths with \"fallback: blocking\" cannot be used with \"output: export\". See more info here: https://nextjs.org/advanced-features/static-html-export","messagePattern":"getStaticPaths with \"fallback: blocking\" cannot be used with \"output: export\"\\. See more info here: https://nextjs\\.org/advanced-features/static-html-export","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/next/src/server/dev/next-dev-server.ts","lineNumber":906,"sourceCode":"            if (!prerenderedRoutes) {\n              throw new Error(\n                `Page \"${page}\" is missing exported function \"generateStaticParams()\", which is required with \"output: export\" config. See more info here: https://nextjs.org/docs/messages/generate-static-params`\n              )\n            }\n\n            if (\n              !prerenderedRoutes.some((item) => item.pathname === urlPathname)\n            ) {\n              throw new Error(\n                `Page \"${page}\" is missing param \"${pathname}\" in \"generateStaticParams()\", which is required with \"output: export\" config.`\n              )\n            }\n          }\n        }\n\n        if (!isAppPath && this.nextConfig.output === 'export') {\n          if (fallback === FallbackMode.BLOCKING_STATIC_RENDER) {\n            throw new Error(\n              'getStaticPaths with \"fallback: blocking\" cannot be used with \"output: export\". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'\n            )\n          } else if (fallback === FallbackMode.PRERENDER) {\n            throw new Error(\n              'getStaticPaths with \"fallback: true\" cannot be used with \"output: export\". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'\n            )\n          }\n        }\n\n        const value: {\n          staticPaths: string[] | undefined\n          prerenderedRoutes: PrerenderedRoute[] | undefined\n          fallbackMode: FallbackMode | undefined\n        } = {\n          staticPaths: prerenderedRoutes?.map((route) => route.pathname),\n          prerenderedRoutes,\n          fallbackMode: fallback,\n        }","sourceCodeStart":888,"sourceCodeEnd":924,"githubUrl":"https://github.com/vercel/next.js/blob/0ae8c72462952df163f1b1e0726641bc5b40dc93/packages/next/src/server/dev/next-dev-server.ts#L888-L924","documentation":"Thrown in dev under output:'export' when a pages-router page's getStaticPaths returns fallback:'blocking'. Static HTML export cannot do blocking SSR fallback (there is no server at runtime to render on demand), so this combination is rejected. Detected when fallback === FallbackMode.BLOCKING_STATIC_RENDER.","triggerScenarios":"A pages-router page (isAppPath false) defines getStaticPaths with `fallback: 'blocking'` while next.config has output:'export'. The fallback check at line 905 throws.","commonSituations":"Enabling output:'export' on an existing project whose getStaticPaths uses blocking fallback. Copying a getStaticPaths pattern from a non-export app into an export project. Migrating to static export without auditing fallback usage.","solutions":["Change getStaticPaths to `fallback: false` and ensure paths covers all needed routes.","Pre-render every path explicitly in getStaticPaths.paths so no fallback is needed.","Remove output:'export' if blocking fallback SSR behavior is required.","Audit all getStaticPaths in the project for fallback:'blocking' once export is enabled."],"exampleFix":"// before\nexport async function getStaticPaths() {\n  return { paths: [{ params: { id: '1' } }], fallback: 'blocking' }\n}\n\n// after (static export compatible)\nexport async function getStaticPaths() {\n  return { paths: [{ params: { id: '1' } }, { params: { id: '2' } }], fallback: false }\n}","handlingStrategy":"validation","validationCode":"// Forbid blocking fallback in pages-router under output:export\nfunction checkGetStaticPathsForExport(paths: { fallback: string | boolean }) {\n  if (paths.fallback === 'blocking') {\n    throw new Error('getStaticPaths fallback:\"blocking\" is incompatible with output:\"export\"')\n  }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Before enabling output:'export', grep for fallback:'blocking' across getStaticPaths.","Use fallback:false and enumerate all paths for export.","Keep an export-mode CI build to catch fallback incompatibilities."],"tags":["static-export","pages-router","get-static-paths","config"],"analyzedSha":"0ae8c72462952df163f1b1e0726641bc5b40dc93","analyzedAt":"2026-08-06T19:44:29.143Z","schemaVersion":2},"datasetVersion":"2026-08-07T02:17:10.218Z"}