{"record":{"id":"3641390763430324","repo":"vercel/next.js","slug":"route-workstore-route-with-dynamic-error-364139","errorCode":null,"errorMessage":"Route ${workStore.route} with `dynamic = \"error\"` couldn't be rendered statically because it used `headers()`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering","messagePattern":"Route (.+?) with `dynamic = \"error\"` couldn't be rendered statically because it used `headers\\(\\)`\\. See more info here: https://nextjs\\.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering","errorType":"exception","errorClass":"StaticGenBailoutError","httpStatus":null,"severity":"error","filePath":"packages/next/src/server/request/headers.ts","lineNumber":91,"sourceCode":"        case 'generate-static-params':\n          throw new Error(\n            `Route ${workStore.route} used \\`headers()\\` inside \\`generateStaticParams\\`. This is not supported because \\`generateStaticParams\\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`\n          )\n        case 'prerender':\n        case 'prerender-client':\n        case 'validation-client':\n        case 'private-cache':\n        case 'prerender-runtime':\n        case 'prerender-legacy':\n        case 'request':\n          break\n        default:\n          workUnitStore satisfies never\n      }\n    }\n\n    if (workStore.dynamicShouldError) {\n      throw new StaticGenBailoutError(\n        `Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`headers()\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`\n      )\n    }\n\n    if (workUnitStore) {\n      switch (workUnitStore.type) {\n        case 'prerender':\n          return makeHangingHeaders(workStore, workUnitStore)\n        case 'prerender-client':\n        case 'validation-client':\n          const exportName = '`headers`'\n          throw new InvariantError(\n            `${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`\n          )\n        case 'prerender-legacy':\n          // Legacy Prerender\n          // We are in a legacy static generation mode while prerendering\n          // We track dynamic access here so we don't need to wrap the headers in","sourceCodeStart":73,"sourceCodeEnd":109,"githubUrl":"https://github.com/vercel/next.js/blob/258b1c1bc05f7099816b88f70b7b3422b24a4b8d/packages/next/src/server/request/headers.ts#L73-L109","documentation":"Error \"Route ${workStore.route} with `dynamic = \"error\"` couldn't be rendered statically because it used `headers()`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering\" thrown in vercel/next.js.","triggerScenarios":"headers() is used in a route with dynamic = \"error\".","commonSituations":"A statically forced route reads headers, which requires dynamic rendering.","solutions":["Remove dynamic = \"error\" or stop using headers() in the route."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"258b1c1bc05f7099816b88f70b7b3422b24a4b8d","analyzedAt":"2026-08-19T02:10:13.922Z","contentChangedAt":"2026-08-19T02:10:13.922Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}