badges/shields · error · NotFound
package not found
Error message
package not found
What it means
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.
Source
Thrown at services/feedz/feedz.service.js:57
name: 'packageName',
example: 'MongoDB.Driver.Core',
},
),
},
},
}
static defaultBadgeData = {
label: 'feedz',
}
packagesUrl({ organization, repository, packageName }) {
return `https://f.feedz.io/${organization}/${repository}/nuget/v3/packages/${packageName}/index.json`
}
transform({ versions, includePrereleases }) {
if (versions.length === 0) {
throw new NotFound({ prettyMessage: 'package not found' })
}
// Strip build metadata and select the appropriate version
const cleanedVersions = versions.map(v => stripBuildMetadata(v))
return selectVersion(cleanedVersions, includePrereleases)
}
async handle({ variant, organization, repository, packageName }) {
const includePrereleases = variant === 'vpre'
const url = this.packagesUrl({ organization, repository, packageName })
const json = await this._requestJson({
schema: packagesSchema,
url,
httpErrors: {
404: 'repository or package not found',
},
})
const version = this.transform({
versions: json.versions,View on GitHub (pinned to 766fd8bc89)
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
Example fix
// before /feedz/v/myorg/wrong-repo/MyPackage // after /feedz/v/myorg/my-repo/MyPackage
Defensive patterns
Strategy: validation
Validate before calling
async function feedzHasVersions(organization, repository, packageName) {
const url = `https://f.feedz.io/${organization}/${repository}/nuget/v3/packages/${packageName}/index.json`
const res = await fetch(url)
if (!res.ok) return false
const json = await res.json()
return Array.isArray(json.versions) && json.versions.length > 0
} Type guard
function hasVersions(json) {
return Array.isArray(json.versions) && json.versions.length > 0
} Try / catch
try {
const badge = await getFeedzVersionBadge({ organization, repository, packageName })
} catch (e) {
if (e.prettyMessage === 'package not found') {
renderPlaceholderBadge('package missing')
} else throw e
} Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
Related errors
AI-assisted analysis of badges/shields@766fd8bc89 (2026-08-30).
Data as JSON: /api/errors/520d931fcf65ef13.
Report an issue: GitHub.