{"record":{"id":"005bdc0e45a175cc","repo":"oven-sh/bun","slug":"tarballhttp404","errorCode":null,"errorMessage":"TarballHTTP404","messagePattern":"TarballHTTP404","errorType":"error_code","errorClass":"bun_install::Error","httpStatus":404,"severity":"error","filePath":"src/install/error.rs","lineNumber":27,"sourceCode":"    #[error(\"NameTooLong\")]\n    NameTooLong,\n    #[error(\"SymLinkLoop\")]\n    SymLinkLoop,\n    #[error(\"SystemFdQuotaExceeded\")]\n    SystemFdQuotaExceeded,\n    #[error(\"SystemResources\")]\n    SystemResources,\n    #[error(\"DeviceBusy\")]\n    DeviceBusy,\n    #[error(\"TarballHTTP400\")]\n    TarballHTTP400,\n    #[error(\"TarballHTTP401\")]\n    TarballHTTP401,\n    #[error(\"TarballHTTP402\")]\n    TarballHTTP402,\n    #[error(\"TarballHTTP403\")]\n    TarballHTTP403,\n    #[error(\"TarballHTTP404\")]\n    TarballHTTP404,\n    #[error(\"TarballHTTP4xx\")]\n    TarballHTTP4xx,\n    #[error(\"TarballHTTP5xx\")]\n    TarballHTTP5xx,\n    #[error(\"TarballFailedToExtract\")]\n    TarballFailedToExtract,\n    #[error(\"TarballFailedToDownload\")]\n    TarballFailedToDownload,\n    #[error(\"BadRequest\")]\n    BadRequest,\n    #[error(\"TooManyRequests\")]\n    TooManyRequests,\n    #[error(\"HTTPInternalServerError\")]\n    HTTPInternalServerError,\n    #[error(\"UnexpectedNotModified\")]\n    UnexpectedNotModified,\n    #[error(\"PackageFailedToParse\")]","sourceCodeStart":9,"sourceCodeEnd":45,"githubUrl":"https://github.com/oven-sh/bun/blob/8c5296ac459e8252d3cd702f3fbcbb0c249d95d5/src/install/error.rs#L9-L45","documentation":"The tarball URL returned 404: the registry has no tarball at the URL bun used. Typical causes: the package or version was unpublished, the lockfile pins a version whose artifact no longer exists, a typo'd dependency name, or a mirror lacking the package.","triggerScenarios":"`bun install` with a lockfile entry for a version the registry removed; dependency name typo in package.json; registry mirror or proxy cache missing the artifact; scoped package resolved against the wrong registry host.","commonSituations":"Author unpublished a version; lockfile committed from a different registry; internal proxy not yet replicated a freshly published version; name typos and case errors.","solutions":["Confirm the package/version exists: npm view <pkg>@<version> or open the registry URL","Update or re-pin the dependency to an existing version and regenerate the lockfile","If using a mirror/proxy, sync it or bypass it for that scope","Diff package.json names against the real package on the registry to catch typos"],"exampleFix":"// before\n\"dependencies\": { \"lodahs\": \"^4.17.21\" }  // typo\n// after\n\"dependencies\": { \"lodash\": \"^4.17.21\" }\n\n# then regenerate resolutions\nrm bun.lock && bun install","handlingStrategy":"validation","validationCode":"import pkg from \"./package.json\";\nconst deps = { ...pkg.dependencies, ...pkg.devDependencies };\nfor (const [name] of Object.entries(deps)) {\n  const registryName = name.startsWith(\"@\") ? name : encodeURIComponent(name);\n  const res = await fetch(`https://registry.npmjs.org/${registryName}`);\n  if (res.status === 404) { console.error(\"unknown package:\", name); process.exit(1); }\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Treat lockfiles as machine-generated; regenerate instead of editing","Verify names with npm view when adding unfamiliar dependencies","Sync or bypass mirrors that lag the upstream registry"],"tags":["install","network","registry","http-404","unpublished"],"backgroundTag":null,"analyzedSha":"8c5296ac459e8252d3cd702f3fbcbb0c249d95d5","analyzedAt":"2026-08-16T08:01:58.794Z","schemaVersion":2},"datasetVersion":"2026-08-16T08:17:34.114Z"}