hcengineering/platform · error · Error

No versions found for the specified version range.

Error message

No versions found for the specified version range.

What it means

After `npm view` returns versions, _resolvePackageVersion picks the highest candidate into latestVersion. If latestVersion is still falsy — the versions list was empty (or npm returned an empty JSON result) — it throws this error. Note this throw itself is immediately caught and rewrapped by error 16's handler in normal flow.

Solutions

  1. Verify the version range is valid semver and that versions satisfying it exist (`npm view <name> versions`).
  2. Use an explicit existing version instead of a range.
  3. Check the package wasn't unpublished (`npm view <name>`).
  4. Handle the outer wrap error (error 16) and inspect its cause string for this message.

Example fix

// before
node install-run.js pnpm@^99.0.0 -- pnpm -v
// after: use a range that matches published versions
node install-run.js pnpm@8 -- pnpm -v
Defensive patterns

Strategy: validation

Validate before calling

const range = '8';
const { execSync } = require('child_process');
const out = JSON.parse(execSync(`npm view pnpm@${range} version --json`).toString());
if (!(Array.isArray(out) ? out.length : out)) throw new Error(`range ${range} matches no published version`);

Try / catch

try { runInstall(); } catch (e) { if (/No versions found for the specified version range/.test(e.message) || /Unable to resolve version.*No versions found/.test(e.message)) { console.error('Use a valid semver range; list versions with npm view <pkg> versions'); process.exit(2); } throw e; }

Prevention

When it happens

Trigger: npm view returned status 0 but an empty version list for the requested range, e.g. an exact version matching nothing, an invalid range string, or a package whose published versions don't satisfy the range.

Common situations: Requesting a not-yet-published version; typo'd semver range like "^ v1.2.3"; querying an npm dist-tag shape that returns empty; recently unpublished package.

Related errors


AI-assisted analysis of hcengineering/platform@63e28dc964 (2026-08-29). Data as JSON: /api/errors/df265f7704bbbedc. Report an issue: GitHub.

Appendix: source

Thrown at foundations/communication/common/scripts/install-run.js:520

            const platformNpmPath = _getPlatformPath(npmPath);
            const npmVersionSpawnResult = child_process__WEBPACK_IMPORTED_MODULE_0__.spawnSync(platformNpmPath, ['view', `${name}@${version}`, 'version', '--no-update-notifier', '--json'], spawnSyncOptions);
            if (npmVersionSpawnResult.status !== 0) {
                throw new Error(`"npm view" returned error code ${npmVersionSpawnResult.status}`);
            }
            const npmViewVersionOutput = npmVersionSpawnResult.stdout.toString();
            const parsedVersionOutput = JSON.parse(npmViewVersionOutput);
            const versions = Array.isArray(parsedVersionOutput)
                ? parsedVersionOutput
                : [parsedVersionOutput];
            let latestVersion = versions[0];
            for (let i = 1; i < versions.length; i++) {
                const latestVersionCandidate = versions[i];
                if (_compareVersionStrings(latestVersionCandidate, latestVersion) > 0) {
                    latestVersion = latestVersionCandidate;
                }
            }
            if (!latestVersion) {
                throw new Error('No versions found for the specified version range.');
            }
            return latestVersion;
        }
        catch (e) {
            throw new Error(`Unable to resolve version ${version} of package ${name}: ${e}`);
        }
    }
}
let _rushJsonFolder;
/**
 * Find the absolute path to the folder containing rush.json
 */
function findRushJsonFolder() {
    if (!_rushJsonFolder) {
        let basePath = __dirname;
        let tempPath = __dirname;
        do {
            const testRushJsonPath = path__WEBPACK_IMPORTED_MODULE_3__.join(basePath, RUSH_JSON_FILENAME);

View on GitHub (pinned to 63e28dc964)