coreybutler/nvm-windows · error

Version %s is not available. The complete list of available

Error message

Version %s is not available.

The complete list of available versions can be found at %s

What it means

Sent on the install status channel when the version is not installed locally (node.IsVersionInstalled fails) and node.IsVersionAvailable(version) — which consults the fetched index.json of Node.js releases — reports the version does not exist upstream. The message embeds web.GetFullNodeUrl("index.json") so the user can verify the full catalog.

Source

Thrown at src/nvm.go:562

							Actions: []Action{
								{Type: "protocol", Label: "Open Explorer", URI: fmt.Sprintf("file://%s", filepath.ToSlash(filepath.Join(env.root)))},
							},
						})
					} else {
						fmt.Printf("rollback error: %v\n", err)
					}
				} else {
					fmt.Println("Rollback complete.")
				}

				if cpuarch == "arm64" && !web.IsNodeArm64bitAvailable(version) {
					status <- Status{Err: fmt.Errorf("Node.js v%s is only available in 32-bit and 64-bit.", version)}
				}

				if !node.IsVersionInstalled(env.root, version, cpuarch) {
					if !node.IsVersionAvailable(version) {
						url := web.GetFullNodeUrl("index.json")
						status <- Status{Err: fmt.Errorf("Version %s is not available.\n\nThe complete list of available versions can be found at %s", version, url)}
					}
				}

				return
			}
		}
	}()

	// Wait for the prior subroutine to initialize before starting the next dependent thread
	time.Sleep(300 * time.Millisecond)

	go func() {
		v, a, err := getVersion(version, cpuarch)
		version = v
		cpuarch = a

		// Setup signal handling first
		signalChan := make(chan os.Signal, 1)

View on GitHub (pinned to 5b18223ca1)

Solutions

  1. Run `nvm ls available` to list valid versions and retry with one of them.
  2. Double-check the exact version on nodejs.org/en/about/releases/ or the index.json URL shown in the message.
  3. If the release is brand new, wait or clear the cached index so it is re-fetched.
  4. For nightly/unofficial builds, download the zip manually into <NVM_HOME>\v<version> instead.

Example fix

# before
nvm install 20.11.99
# after
nvm install 20.11.0
Defensive patterns

Strategy: validation

Validate before calling

# bash: confirm the version exists in the index before installing
curl -sf https://nodejs.org/dist/index.json | grep -q "\"v$V\"" \
  || { echo "v$V not published" >&2; exit 1; }
nvm install "$V"

Prevention

When it happens

Trigger: `nvm install 21.7.99` (never-released patch), `nvm install 4.9.1` (doesn't exist; 4.9.0 is last v4), or a version newer than any release. Runs on the 'already installed / early-return' path of install().

Common situations: Guessing point releases; typos in the patch number; copy-pasting a Linux-only or nightly (nightlies.nodejs.org) version that is not in the official index; users on an old cached index.json after a brand-new release.

Related errors


AI-assisted analysis of coreybutler/nvm-windows@5b18223ca1 (2026-08-15). Data as JSON: /api/errors/5ce46f9dc211630f. Report an issue: GitHub.