vercel/next.js · error

Route ${workStore.route} used `${expression}` inside `genera

Error message

Route ${workStore.route} used `${expression}` 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

What it means

Error "Route ${workStore.route} used `${expression}` 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" thrown in vercel/next.js.

Source

Thrown at packages/next/src/server/request/draft-mode.ts:264

          const exportName = '`draftMode`'
          throw new InvariantError(
            `${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.`
          )
        case 'prerender-legacy':
          workUnitStore.revalidate = 0

          const err = new DynamicServerError(
            `Route ${workStore.route} couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`
          )
          workStore.dynamicUsageDescription = expression
          workStore.dynamicUsageStack = err.stack

          throw err
        case 'request':
          trackDynamicDataInDynamicRender(workUnitStore)
          break
        case 'generate-static-params':
          throw new Error(
            `Route ${workStore.route} used \`${expression}\` 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`
          )
        default:
          workUnitStore satisfies never
      }
    }
  }
}

View on GitHub (pinned to 258b1c1bc0)

Solutions

  1. Do not call draftMode() inside generateStaticParams; it runs at build time without a request.
Defensive patterns

Strategy: validation

When it happens

Trigger: A dynamic API is called inside generateStaticParams.

Common situations: Using request-scoped APIs at build time inside generateStaticParams.


AI-assisted analysis of vercel/next.js@258b1c1bc0 (2026-08-19). Data as JSON: /api/errors/999aa88856e503a7. Report an issue: GitHub.