Home · Topic · 25 entries
Node.js, npm and framework errors on Windows, fixed
A lot of JavaScript tooling is written and tested on macOS and Linux, and Windows is where its assumptions break: .cmd launchers that some tools cannot start, case-insensitive paths that hide bugs until CI, native binaries built for the wrong platform, folder permissions a security check rejects, and ports that stay taken. Every entry below was reproduced on a real Windows 11 machine, and where it matters, run again on Linux to show which failures only happen on Windows.
Entries
- No.094
Python CERTIFICATE_VERIFY_FAILED, tested on 3.12 to 3.15
certificate verify failed: unable to get local issuer certificate, or Basic Constraints of CA cert not marked critical on Python 3.13+. Each cause tested.
> requests.exceptions.SSLError: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/
FIXED3 minWindows - No.093
Fix: bigint Failed to load bindings, pure JS will be used
bigint: Failed to load bindings, pure JS will be used. Why npm 12 shows it on every install, whether it matters, and how to get the native build back.
> bigint: Failed to load bindings, pure JS will be used (try npm run rebuild?)
FIXED3 minWindows - No.075
Python was not found, or pip not recognized (Windows fix)
"Python was not found" comes from a Microsoft Store placeholder python.exe, not Python, and exits with 9009. How to see which python.exe wins, and the pip fix.
> Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Apps > Advanced app settings > App execution aliases.
FIXED3 minWindows - No.073
Fix: git 'Filename too long' on Windows (clone, checkout)
git clone fails on Windows with Filename too long and unable to checkout working tree. Reproduced with a 286-character path, plus how to rescue the clone.
> error: unable to create file node_modules/@some-scope/…/an-equally-long-file-name-for-the-generated-component-module.js: Filename too long
FIXED2 minWindows - No.072
npm error code ENOENT, and spawn npx ENOENT on Windows
Read the path line first. On Windows, spawn npx ENOENT has a twist: adding .cmd now fails with EINVAL. Four ENOENT causes reproduced, each with its fix.
> npm error code ENOENT
FIXED3 minWindows - No.071
Fix: JavaScript heap out of memory (Node.js, tested)
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory. Default limits measured, and two ways the usual fix silently fails.
> FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
FIXED2 minWindows - No.069
Fix: EBUSY: resource busy or locked (npm, Windows)
npm install and Node fail on Windows with EBUSY: resource busy or locked, rmdir. Reproduced: what holds the folder, how to find it, and why retrying fails.
> npm error code EBUSY
FIXED3 minWindows - No.068
Fix: self-signed certificate in certificate chain (npm)
npm install and fetch() fail with SELF_SIGNED_CERT_IN_CHAIN behind a company proxy. Reproduced on Windows and Linux: which fixes work, and two that don't.
> npm error code SELF_SIGNED_CERT_IN_CHAIN
FIXED3 minWindows - No.065
No matching distribution found for torch: 5 causes, tested
pip says Could not find a version that satisfies the requirement torch (from versions: none). Five causes reproduced on Windows, and the fix for each.
> ERROR: Could not find a version that satisfies the requirement torch (from versions: none)
FIXED4 minWindows - No.064
Fix: Microsoft Visual C++ 14.0 or greater is required
pip install fails on Windows asking for Microsoft C++ Build Tools. Four causes reproduced, Failed building wheel for pyyaml fixed, and when Build Tools help.
> error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
FIXED7 minWindows - No.063
Python 3.15 on Windows: which packages install (tested)
Most of the stack is ready: numpy, pandas, scipy, scikit-learn, polars, pydantic, FastAPI, Django and the OpenAI and Anthropic SDKs all install on 3.15, and so do PyTorch (since torch 2.15.0) and sentencepiece (since 0.2.3). What fails on Windows: TensorFlow (no 3.15 builds at all), PyYAML and everything that needs it, such as transformers (no 3.15 wheel, so pip tries to compile it), jupyterlab, and langchain (Rust and C dependencies with no 3.15 wheels).
TESTED10 minWindows - No.058
Claude Code, Codex, Gemini CLI on Windows: install tested
All five install and start on Windows 11 with npm 11, in cmd, on Node 24 and Node 26. Two things trip people up. On a default Windows PowerShell setup all five fail with "running scripts is disabled on this system". And with npm 12, Claude Code and OpenCode install with no error but then refuse to start: "not compatible with the version of Windows you're running".
TESTED6 minWindows - No.057
Node 26 vs Node 24: what breaks when you upgrade, tested
Most projects move over cleanly: jsonwebtoken, bcrypt, sharp, better-sqlite3 13, tsx and Vitest all worked unchanged. What broke: Corepack and Yarn are gone (Docker builds fail with exit code 127), native modules installed under Node 24 refuse to load, fs.rmdir with recursive now throws (prisma generate with zod-prisma-types fails on the second run), and fs.W_OK disappeared without an error.
TESTED8 minWindows - No.055
18 framework starters tested on Windows: what breaks
15 of 18 starters work on Windows 11: 14 with no issues at all, 1 with a workaround. Every Remix 3 script still fails out of the box and works on Linux; Docusaurus's Windows build failure is fixed by SWC 1.16.21, Nuxt's Windows-only 500 is fixed in 4.6.1, and React Router's installer in 8.5.1. Three more break in ways that tutorials and CI scripts hit: Angular needs a newer Node 24, Electron Forge renamed its template, and Cloudflare's C3 can exit successfully with a broken project.
TESTED8 minWindows - No.052
Next.js 16.3 vulnerabilities: which version is patched?
On October 14, two critical remote code execution bugs were fixed in 16.4.1 only; every 16.3 release is affected and for days npm audit did not flag them. Before that, 16.3.0 carried 9 published advisories (3 critical) and 16.3.7 carried 6, because the September 30 fixes skipped it. By October 23, npm audit counted 10 on 16.3.7 and 3 on 16.3.8. The upgrade built cleanly on every version I tried. The traps are in the tools: npm audit fix jumps you a minor version or does nothing at all, and next upgrade crashes on Windows.
TESTED7 minWindows - No.051
Bun "error: Cannot find module": every cause, tested
Bun prints the same Cannot find module error for six different problems. Each one reproduced on Bun 1.4.2 on Windows and Linux, with the fix that worked.
> error: Cannot find module '@mono/ui' from 'D:\nk-repro\bun-cnf\e-mono\apps\web\index.ts'
FIXED9 minWindows - No.047
Fix: @prisma/client did not initialize yet (Prisma 6 and 7)
The error says run prisma generate. Why it keeps coming back on Windows, npm 12 and CI, reproduced, plus the errors Prisma 7 throws instead.
> D:\project\node_modules\.prisma\client\default.js:43
DATABASE4 minWindows - No.043
Fix: APIConnectionError "Connection error." (OpenAI, Anthropic)
OpenAI's and Anthropic's SDKs both say only Connection error. Five real causes reproduced, from a local model that isn't running to antivirus HTTPS scanning.
> APIConnectionError: Connection error.
AI5 minWindows - No.038
Fix: Puppeteer "Could not find Chrome (ver. …)"
Puppeteer can't find Chrome though npm install worked. Six causes reproduced on Windows and Linux, including npm 12, upgrades and Docker, each with its fix.
> Error: Could not find Chrome (ver. 154.0.8037.57). This can occur if either
FIXED5 minWindows - No.037
npm 12 breaking changes, tested: what actually breaks
The headline change, install scripts blocked by default, broke puppeteer, cypress, sqlite3 and Claude Code's npm package, and silently skipped lefthook's git hooks. esbuild, bcrypt, sharp and better-sqlite3 kept working. Every install reported success, and the only sign was a warning after the summary.
TESTED6 minWindows - No.036
Fix: Claude Code "not compatible with the version of Windows"
Windows says claude.exe won't run right after an npm install of Claude Code. Your Windows is fine. Reproduced on npm 12, with the reinstall that fixed it.
> This version of C:\...\claude-code\bin\claude.exe is not compatible with the version of Windows you're running. Check your computer's system information and then contact the software publisher.
AGENTS3 minWindows - No.035
Fix: Claude Code "Invalid API key · Fix external API key"
Invalid API key · Fix external API key, Please run /login and 401 in Claude Code: every auth message reproduced on 2.1.314, and the Windows quoting trap.
> Invalid API key · Fix external API key
AGENTS5 minWindows - No.018
"Cannot find native binding" in Vite 8: the missing @rolldown file
Vite 8 fails with "Cannot find native binding" and names @rolldown/binding-wasm32-wasi? That's a fallback, not your missing package. Both causes, and the fix.
> Error: Cannot find native binding. npm has a bug related to optional dependencies
FIXED8 minWindows - No.016
Fix: 'vite' is not recognized as an internal or external command
Windows says the command doesn't exist, but it's right there in node_modules. Five causes, how to tell them apart in one command, and what each one needs.
> 'vite' is not recognized as an internal or external command,
FIXED5 minWindows - No.003
Windows 11 address already in use: 3 traps beyond taskkill
Address already in use on Windows 11 (EADDRINUSE), but the PID is Docker, WSL or nothing at all. Reproduced: when not to kill it, and which port to pick.
> node:events:486
FIXED5 minWindows
Post card · Every Sunday
What broke this week.
One email on Sundays: the Node, TypeScript, Python and AI SDK releases that broke builds that week, each one reproduced, with a link to the fix that worked. Never shared, and you can leave any time.
— Nilay