cypress-io/cypress · error · Error

Unsupported webpackDevServer version ${webpackDevServerMajor

Error message

Unsupported webpackDevServer version ${webpackDevServerMajorVersion}

What it means

Thrown by createWebpackDevServer after constructing the webpack compiler: only webpack-dev-server major version 5 is handled; any other major version falls through to the throw. The major version is resolved from the user's installed webpack-dev-server module, so this fires when the installed major is not 5 (e.g. 4 or a future 6).

Source

Thrown at npm/webpack-dev-server/src/createWebpackDevServer.ts:54

      webpack: {
        module: webpack,
      },
      webpackDevServer: {
        majorVersion: webpackDevServerMajorVersion,
      },
    },
  } = config

  const finalWebpackConfig = await makeWebpackConfig(config)
  const webpackCompiler = webpack(finalWebpackConfig)

  if (webpackDevServerMajorVersion === 5) {
    debug('using webpack-dev-server v5')

    return webpackDevServer5(config, webpackCompiler, finalWebpackConfig)
  }

  throw new Error(`Unsupported webpackDevServer version ${webpackDevServerMajorVersion}`)
}

function webpackDevServer5 (
  config: CreateFinalWebpackConfig,
  compiler: object,
  finalWebpackConfig: Record<string, any>,
) {
  const { devServerConfig: { cypressConfig: { devServerPublicPathRoute } } } = config
  const isOpenMode = !config.devServerConfig.cypressConfig.isTextTerminal
  const WebpackDevServer = config.sourceWebpackModulesResult.webpackDevServer.module
  const webpackDevServerConfig: WebpackDevServer5Configuration = {
    host: '127.0.0.1',
    port: 'auto',
    // @ts-ignore
    ...finalWebpackConfig?.devServer,
    devMiddleware: {
      publicPath: devServerPublicPathRoute,
      stats: finalWebpackConfig.stats ?? 'minimal',

View on GitHub (pinned to 0d85fdc912)

Solutions

  1. Install webpack-dev-server@5: `npm install -D webpack-dev-server@5 webpack@5`.
  2. Ensure webpack and webpack-dev-server majors are compatible (both v5-line).
  3. Remove conflicting resolutions/overrides that pull a different webpack-dev-server major.
  4. If you must stay on v4, use an older @cypress/webpack-dev-server that supports it.

Example fix

// before: package.json
"devDependencies": { "webpack-dev-server": "^4.15.1" }
// after
"devDependencies": { "webpack-dev-server": "^5.0.0", "webpack": "^5.0.0" }
Defensive patterns

Strategy: validation

Validate before calling

import { createRequire } from 'module'
function ensureWebpackDevServerV5(root: string) {
  const v = createRequire(import.meta.url)('webpack-dev-server/package.json', { paths: [root] }).version
  if (!v.startsWith('5.')) throw new Error('Install webpack-dev-server@5')
}

Type guard

const isWDSv5 = (v: string): boolean => v.startsWith('5.')

Prevention

When it happens

Trigger: Running CT with the webpack dev server when the resolved webpack-dev-server major version is not 5. The version is read from sourceWebpackModulesResult and compared at runtime; versions other than 5 have no handler branch.

Common situations: A project pinned to webpack-dev-server@4 (older), a future major (6+ not yet supported), or a transitive resolution that pulls a different major than expected. Also occurs after a fresh install where package.json does not pin webpack-dev-server@5.

Related errors


AI-assisted analysis of cypress-io/cypress@0d85fdc912 (2026-08-12). Data as JSON: /api/errors/f43a4bd6c452ec4c. Report an issue: GitHub.