{"record":{"id":"520d931fcf65ef13","repo":"badges/shields","slug":"package-not-found-520d93","errorCode":null,"errorMessage":"package not found","messagePattern":"package not found","errorType":"exception","errorClass":"NotFound","httpStatus":404,"severity":"error","filePath":"services/feedz/feedz.service.js","lineNumber":57,"sourceCode":"            name: 'packageName',\n            example: 'MongoDB.Driver.Core',\n          },\n        ),\n      },\n    },\n  }\n\n  static defaultBadgeData = {\n    label: 'feedz',\n  }\n\n  packagesUrl({ organization, repository, packageName }) {\n    return `https://f.feedz.io/${organization}/${repository}/nuget/v3/packages/${packageName}/index.json`\n  }\n\n  transform({ versions, includePrereleases }) {\n    if (versions.length === 0) {\n      throw new NotFound({ prettyMessage: 'package not found' })\n    }\n    // Strip build metadata and select the appropriate version\n    const cleanedVersions = versions.map(v => stripBuildMetadata(v))\n    return selectVersion(cleanedVersions, includePrereleases)\n  }\n\n  async handle({ variant, organization, repository, packageName }) {\n    const includePrereleases = variant === 'vpre'\n    const url = this.packagesUrl({ organization, repository, packageName })\n    const json = await this._requestJson({\n      schema: packagesSchema,\n      url,\n      httpErrors: {\n        404: 'repository or package not found',\n      },\n    })\n    const version = this.transform({\n      versions: json.versions,","sourceCodeStart":39,"sourceCodeEnd":75,"githubUrl":"https://github.com/badges/shields/blob/766fd8bc89a90b8534dc573ab72dec30215ab1ec/services/feedz/feedz.service.js#L39-L75","documentation":"The feedz service fetches the NuGet v3 version index from f.feedz.io and transforms it. If the versions array from the endpoint is empty, it throws NotFound with prettyMessage 'package not found', meaning feedz has no versions registered for that organization/repository/package combination.","triggerScenarios":"Requesting a feedz version badge where the package index at https://f.feedz.io/{organization}/{repository}/nuget/v3/packages/{packageName}/index.json exists but lists zero versions, or the versions array is missing/empty in the response.","commonSituations":"Package name wrong case or missing entirely from the feed; package published to a different feed (organization/repository mismatch); package never pushed to feedz; feed deleted or renamed.","solutions":["Verify the package name and that it exists in the specified feedz feed (check the index.json URL in a browser)","Correct the organization/repository in the badge URL","Push the package to the feed or select a feed that contains it","Check feedz permissions — an unauthorized feed may return an empty version list"],"exampleFix":"// before\n/feedz/v/myorg/wrong-repo/MyPackage\n// after\n/feedz/v/myorg/my-repo/MyPackage","handlingStrategy":"validation","validationCode":"async function feedzHasVersions(organization, repository, packageName) {\n  const url = `https://f.feedz.io/${organization}/${repository}/nuget/v3/packages/${packageName}/index.json`\n  const res = await fetch(url)\n  if (!res.ok) return false\n  const json = await res.json()\n  return Array.isArray(json.versions) && json.versions.length > 0\n}","typeGuard":"function hasVersions(json) {\n  return Array.isArray(json.versions) && json.versions.length > 0\n}","tryCatchPattern":"try {\n  const badge = await getFeedzVersionBadge({ organization, repository, packageName })\n} catch (e) {\n  if (e.prettyMessage === 'package not found') {\n    renderPlaceholderBadge('package missing')\n  } else throw e\n}","preventionTips":["Open the package index.json URL directly to confirm the package exists in the feed","Double-check organization and repository slugs and the package id casing","Ensure the package is actually pushed to the feedz feed used in the badge","Verify feed permissions allow anonymous reads for the badge to work"],"tags":["feedz","nuget","not-found","package-registry"],"backgroundTag":"package-not-found-in-registry","analyzedSha":"766fd8bc89a90b8534dc573ab72dec30215ab1ec","analyzedAt":"2026-08-30T01:40:27.499Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}