{"record":{"id":"6d8951b28a95e8ac","repo":"parcel-bundler/parcel","slug":"npmresolve-failed-resolving-name-version","errorCode":null,"errorMessage":"npmResolve failed: resolving ${name}@${version}","messagePattern":"npmResolve failed: resolving (.+?)@(.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/dev/repl/SimplePackageInstaller/index.js","lineNumber":88,"sourceCode":"    }\n    const data: {|\n      name: string,\n      modified: string,\n      'dist-tags': {|[string]: string|},\n      versions: {|[string]: ResolveCacheEntry|},\n    |} = await res.json();\n\n    let resolvedVersion;\n    if (version in data['dist-tags']) {\n      resolvedVersion = data['dist-tags'][version];\n    } else if (semver.validRange(version)) {\n      // $FlowFixMe\n      resolvedVersion = (semver.maxSatisfying(\n        Object.keys(data.versions),\n        version,\n      ): string);\n      if (!resolvedVersion) {\n        throw new Error(`npmResolve failed: resolving ${name}@${version}`);\n      }\n    } else {\n      throw new Error(\n        `${name}@${version}: only npm semver dependencies are currently supported.`,\n      );\n    }\n    this.cache.resolve.set(\n      `${name}@${version}`,\n      data.versions[resolvedVersion],\n    );\n    return data.versions[resolvedVersion];\n  }\n\n  async _npmFetch(tarball: string): Promise<Map<string, Uint8Array>> {\n    const cacheEntry = this.cache.fetch.get(tarball);\n    if (cacheEntry) {\n      return cacheEntry;\n    }","sourceCodeStart":70,"sourceCodeEnd":106,"githubUrl":"https://github.com/parcel-bundler/parcel/blob/59484858a1a0bcbb71f74088956bb437a2db6505/packages/dev/repl/SimplePackageInstaller/index.js#L70-L106","documentation":"Thrown by `SimplePackageInstaller._npmResolve` after a successful registry fetch when `semver.maxSatisfying` cannot find any published version matching the requested range. The package exists, but none of its published versions satisfy the requested range (e.g. asking for `^5.0.0` when only `4.x` is published).","triggerScenarios":"Requesting `name@^5.0.0` when only `4.x` versions exist; requesting a version higher than the latest `dist-tag`; requesting a range that excludes all published versions (`>1.0.0 <1.0.0`); prerelease-only ranges without matching prereleases.","commonSituations":"Depended on a major that was never released; asked for `next` tag's version explicitly as a range; version pinned ahead of release; package yanked all matching versions.","solutions":["Run `npm view <name> versions` to see what's actually published.","Loosen the range or use a known dist-tag (e.g. `latest`) instead.","Confirm the major you expect has been released; downgrade your request if not.","If a prerelease is required, use an explicit prerelease version, not a caret range."],"exampleFix":"// before\ninstaller._npmResolve('react', '^19.0.0')  // only 18.x published\n// after\ninstaller._npmResolve('react', '^18.2.0')","handlingStrategy":"validation","validationCode":"const semver = require('semver');\nasync function rangeIsSatisfiable(name, range) {\n  const r = await fetch(`https://registry.npmjs.org/${name}`).then(r => r.json());\n  return !!semver.maxSatisfying(Object.keys(r.versions), range);\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Check published versions with `npm view <name> versions` before pinning.","Prefer dist-tags (latest) over forward-looking caret ranges.","Avoid ranges that assume an unreleased major."],"tags":["semver","npm","dependency-resolution","repl"],"backgroundTag":null,"analyzedSha":"59484858a1a0bcbb71f74088956bb437a2db6505","analyzedAt":"2026-08-13T04:06:35.925Z","schemaVersion":2},"datasetVersion":"2026-08-13T04:17:16.726Z"}