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
- Reinstall ESLint cleanly: delete `node_modules/eslint` and reinstall.
- Check ESLint's `package.json` version field is standard semver (e.g., `8.57.0`).
- 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
- Use official ESLint packages, not forks.
- Reinstall node_modules if you suspect corruption.
- Verify ESLint's package.json version field is valid semver.
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
- Parsing and encoding errors: unexpected token, malformed input — why parsers reject input and how to find the real culprit.
Related errors
- Failed to patch ESLint because the calling module was not re
- Remotion 5 requires ESLint ${minEslintVersion} or later. You
- The patch-eslint.js script has only been tested with ESLint
AI-assisted analysis of remotion-dev/remotion@78fe4bb3fd (2026-08-12).
Data as JSON: /api/errors/1b62fb21c90dd18a.
Report an issue: GitHub.