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
- Install webpack-dev-server@5: `npm install -D webpack-dev-server@5 webpack@5`.
- Ensure webpack and webpack-dev-server majors are compatible (both v5-line).
- Remove conflicting resolutions/overrides that pull a different webpack-dev-server major.
- 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
- Pin webpack-dev-server@^5 and webpack@^5 in devDependencies.
- Add a preflight check that resolves the installed major before launching CT.
- Avoid resolutions/overrides that change the webpack-dev-server major.
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
- Unexpected major version of ${json.name}. Cypress webpack-de
- CJS builds of vite ${majorVersionNumber} are not supported
- Could not find "vite" in your project's dependencies. Please
- No typescript installable was found. ts-loader needs a versi
- Tests cannot run without a reference to Cypress!
AI-assisted analysis of cypress-io/cypress@0d85fdc912 (2026-08-12).
Data as JSON: /api/errors/f43a4bd6c452ec4c.
Report an issue: GitHub.