remotion-dev/remotion · error · Error

Unable to parse ESLint version: ${eslintPackageVersion}

Error message

Unable to parse ESLint version: ${eslintPackageVersion}

What it means

The ESLint patcher reads ESLint's `package.json` and extracts the version with the regex `^([0-9]+)\.([0-9]+)\.`. If the version string does not match (e.g., a non-standard format, a pre-release tag without a patch number, or a corrupted package.json), this error is thrown. The parsed version value is included in the message.

Source

Thrown at packages/eslint-config/src/patch-eslint.ts:256

					'Failed to patch ESLint because the calling module was not recognized.\n' +
						'If you are using a newer ESLint version that may be unsupported, please create a GitHub issue:\n' +
						'https://github.com/remotion-dev/remotion/issues',
				);
			}

			currentModule = currentModule.parent;
		}
	}

	// Detect the ESLint package version
	const eslintPackageJson = fs
		.readFileSync(path.join(eslintFolder, 'package.json'))
		.toString();
	const eslintPackageObject = JSON.parse(eslintPackageJson);
	const eslintPackageVersion = eslintPackageObject.version;
	const versionMatch = /^([0-9]+)\.([0-9]+)\./.exec(eslintPackageVersion);
	if (!versionMatch) {
		throw new Error('Unable to parse ESLint version: ' + eslintPackageVersion);
	}

	const eslintMajorVersion = Number(versionMatch[1]);
	const eslintMinorVersion = Number(versionMatch[2]);
	const minEslintVersion = getMinEslintVersion();
	if (minEslintVersion !== null) {
		const minVersionMatch = /^([0-9]+)\.([0-9]+)\./.exec(minEslintVersion)!;
		const minMajorVersion = Number(minVersionMatch[1]);
		const minMinorVersion = Number(minVersionMatch[2]);
		if (
			eslintMajorVersion < minMajorVersion ||
			(eslintMajorVersion === minMajorVersion &&
				eslintMinorVersion < minMinorVersion)
		) {
			throw new Error(
				`Remotion 5 requires ESLint ${minEslintVersion} or later. You currently have ESLint ${eslintPackageVersion}.`,
			);
		}

View on GitHub (pinned to 78fe4bb3fd)

Solutions

  1. Reinstall ESLint cleanly: delete `node_modules/eslint` and reinstall.
  2. Check ESLint's `package.json` version field is standard semver (e.g., `8.57.0`).
  3. If using a forked ESLint, switch to the official package.
Defensive patterns

Strategy: validation

Validate before calling

const eslintPkg = require('eslint/package.json');
if (!/^\d+\.\d+\./.test(eslintPkg.version)) {
  throw new Error(`ESLint package has an invalid version: ${eslintPkg.version}`);
}

Try / catch

try {
  require('@remotion/eslint-config/patch-eslint');
} catch (err) {
  if (err instanceof Error && err.message.includes('Unable to parse ESLint version')) {
    // reinstall eslint to fix corrupted package.json
    console.error('ESLint package.json corrupted. Reinstall node_modules/eslint.');
  } else {
    throw err;
  }
}

Prevention

When it happens

Trigger: A manually edited or corrupted ESLint `package.json` with a malformed `version` field, a forked ESLint with a non-semver version string, or an npm/pnpm issue that wrote an incomplete version.

Common situations: Using a forked or patched ESLint package, a corrupted `node_modules` after a failed install, or a custom ESLint build with an unconventional version.

Understand the failure class

Related errors


AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12). Data as JSON: /api/errors/1b62fb21c90dd18a. Report an issue: GitHub.