coreybutler/nvm-windows · error
Could not download npm for node v%s. Please visit %s to down
Error message
Could not download npm for node v%s. Please visit %s to download npm. It should be extracted to %s\v%s
What it means
Terminal error (Done: true) on the no-progress path when npm could not be downloaded for the requested node version. It names npmurl (web.GetFullNpmUrl(version)) for manual retrieval and the exact target directory <NVM_ROOT>\v<version>. On the GUI/progress path the same condition raises a desktop notification with a 'Manually Download' link instead.
Source
Thrown at src/nvm.go:833
err = utility.Rename(filepath.Join(root, "v"+version), filepath.Join(env.root, "v"+version))
if err != nil {
status <- Status{Err: err}
}
npmurl := web.GetFullNpmUrl(version)
if show_progress {
// Send special error notification with link to npm release when it cannot be downloaded
notify(Notification{
Title: "Download Failure (npm)",
Message: fmt.Sprintf("Please download npm v%s manually and extract to %s\\v%s", version, env.root, version),
Icon: "error",
Actions: []Action{
{Type: "protocol", Label: "Manually Download", URI: npmurl},
},
})
status <- Status{Done: true}
} else {
status <- Status{Err: fmt.Errorf("Could not download npm for node v%s.\nPlease visit %s to download npm.\nIt should be extracted to %s\\v%s", version, npmurl, env.root, version), Done: true}
}
}
} else {
status <- Status{Text: "Version " + version + " is already installed.", Done: true}
}
}()
// Wait for the process to complete before exiting
wg.Wait()
os.Exit(exitCode)
}
func reinstall(version, cpuarch string) {
// Make sure a version is specified
if len(version) == 0 {
fmt.Println("Provide the version you want to uninstall.")
help()
returnView on GitHub (pinned to 5b18223ca1)
Solutions
- Follow the message: open the printed npmurl, download the archive for the bundled npm version, and extract it to <NVM_ROOT>\v<version> (bin\npm goes to the version root).
- Or fix connectivity/mirror (`nvm npm_mirror`, `nvm proxy`), then `nvm uninstall <version>` and `nvm install <version>` again for a clean combined install.
- Alternatively bootstrap npm via corepack/manual copy from another installed version directory.
Example fix
# manual completion shown by the message cd %NVM_HOME%\v20.11.0 # download npm archive from the printed URL, extract so that node_modules\npm exists and npm.cmd sits in the version root
Defensive patterns
Strategy: fallback
Validate before calling
# bash: verify npm is reachable before unattended install curl -sfI "https://github.com/npm/cli/archive" >/dev/null || echo 'WARNING: npm archive unreachable; node will install without npm' >&2
Try / catch
nvm install "$V"; [ -d "$NVM_HOME/v$V/node_modules/npm" ] || { echo 'npm missing — see printed URL for manual extraction'; exit 1; } Prevention
- After installs, assert $NVM_HOME/v<version>/node_modules/npm exists in your setup script.
- Keep the npm mirror/proxy healthy before batch installs.
- Know the manual recovery path: download the npm archive URL from the message and extract it under the version directory.
When it happens
Trigger: `nvm install <version>` where web.GetNpm fails (mirror down, proxy block) and show_progress is false — i.e. the normal CLI path. Node.exe is installed but node_modules\npm is absent, so `npm -v` would fail afterwards.
Common situations: Air-gapped or proxied networks; npm mirror misconfigured; node installed for a version whose bundled npm tag the mirror does not carry.
Related errors
- Failed to extract npm: %v
- failed to download v%v arm 64-bit executable
- Failed to extract npm. Could not find %s
- Node.js v%s is only available in 32-bit and 64-bit.
- Version %s is not available. The complete list of available
AI-assisted analysis of coreybutler/nvm-windows@5b18223ca1 (2026-08-15).
Data as JSON: /api/errors/7b6af81e21347c32.
Report an issue: GitHub.