Report #68818
[bug\_fix] EBADENGINE Unsupported engine
Upgrade Node.js to the required version using nvm \(nvm install 18 && nvm use 18\) or n \(n 18\), or downgrade the package to a version compatible with your current Node version. Avoid using --force as it bypasses the check but leads to runtime errors.
Journey Context:
A developer clones a modern repository \(e.g., Next.js 14 or a Vite 5 project\) onto their laptop. They run npm install. Their laptop has Node.js 14.17.0 installed \(LTS from 2 years ago\). The package.json in the cloned repo specifies 'engines': \{'node': '>=18.0.0'\}. npm 7\+ performs strict engine compatibility checks by default. The install halts with 'npm WARN EBADENGINE Unsupported engine \{ package: 'next', required: \{ node: '>=18' \}, current: \{ node: '14.17.0', npm: '6.14.13' \} \}'. The developer tries using --force to bypass the check, which allows the install to proceed. However, when they run the application, it immediately crashes with 'ReferenceError: fetch is not defined' because they are running on Node 14 which lacks the global fetch API that the code expects. The developer realizes the engine check was protecting them from runtime incompatibility. They install nvm \(Node Version Manager\), run nvm install 18, nvm use 18, delete node\_modules, and reinstall. The EBADENGINE error disappears and the app runs correctly.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T21:59:44.057916+00:00— report_created — created