vercel/next.js · error

`experimental.cssChunking: false` is only supported with web

Error message

`experimental.cssChunking: false` is only supported with webpack. Please remove the option or run Next.js with webpack in ${configFileName}.

What it means

`experimental.cssChunking: false` forces single-chunk-per-module CSS, a webpack-only behavior. Unlike `undefined` (which also resolves to 'off' but is the implicit default and allowed on Turbopack), an explicit `false` is rejected when Turbopack is active. Skipped during `next start`/PHASE_INFO.

Source

Thrown at packages/next/src/server/config.ts:535

  if (phase !== PHASE_PRODUCTION_SERVER && phase !== PHASE_INFO) {
    const cssChunkingValue = result.experimental.cssChunking
    const cssChunkingMode = resolveCssChunkingMode(cssChunkingValue)
    if (cssChunkingMode === 'graph' && !process.env.TURBOPACK) {
      throw new Error(
        `\`experimental.cssChunking: "graph"\` is only supported with Turbopack. ` +
          `Please remove the option or run Next.js with Turbopack in ${configFileName}.`
      )
    }
    if (cssChunkingMode === 'strict' && process.env.TURBOPACK) {
      throw new Error(
        `\`experimental.cssChunking: "strict"\` is only supported with webpack. ` +
          `Please remove the option or run Next.js with webpack in ${configFileName}.`
      )
    }
    // Only error when `false` was set explicitly. `undefined` (the default) also resolves to
    // `'off'` but that's the implicit default and must not error on Turbopack.
    if (cssChunkingValue === false && process.env.TURBOPACK) {
      throw new Error(
        `\`experimental.cssChunking: false\` is only supported with webpack. ` +
          `Please remove the option or run Next.js with webpack in ${configFileName}.`
      )
    }

    if (
      result.experimental.turbopackRustReactCompiler &&
      !process.env.TURBOPACK
    ) {
      throw new Error(
        `\`experimental.turbopackRustReactCompiler\` is only supported with Turbopack. ` +
          `Please remove the option or run Next.js with Turbopack in ${configFileName}.`
      )
    }

    if (
      result.experimental.turbopackRustReactCompiler &&
      !result.reactCompiler

View on GitHub (pinned to 0ae8c72462)

Solutions

  1. Remove the cssChunking key entirely so it defaults (allowed on Turbopack)
  2. Run with webpack: `next build --webpack`
  3. Set it to a Turbopack-compatible value like 'graph'

Example fix

// before
module.exports = { experimental: { cssChunking: false } }
// after
module.exports = {}  // omit to use default
Defensive patterns

Strategy: validation

Validate before calling

const isTurbopack = Boolean(process.env.TURBOPACK)
if (cssChunking === false && isTurbopack) {
  cssChunking = undefined // explicit false is webpack-only on Turbopack
}

Prevention

When it happens

Trigger: Setting `experimental: { cssChunking: false }` (explicit boolean false, not undefined) and running with Turbopack.

Common situations: Explicitly disabling chunking for debugging on a project that later moved to Turbopack. Setting `cssChunking: false` to opt out, not realizing it's webpack-specific.

Related errors


AI-assisted analysis of vercel/next.js@0ae8c72462 (2026-08-06). Data as JSON: /api/errors/e9b14ff235c9f0af. Report an issue: GitHub.