badges/shields · info · NotFound
no active version found
Error message
no active version found
What it means
The GNOME Extensions version service throws this NotFound when none of the extension versions returned by extensions.gnome.org have the active status. The service filters results to ACTIVE_STATUS before picking the latest, and an empty filtered list means no active version can be reported.
Source
Thrown at services/gnome-extensions/gnome-extensions-version.service.js:60
static render({ version }) {
return renderVersionBadge({ version })
}
async fetch({ extensionId }) {
return await this._requestJson({
schema: versionSchema,
url: `https://extensions.gnome.org/api/v1/extensions/${extensionId}/versions/?page_size=100`,
httpErrors: {
404: 'extension not found',
},
})
}
async handle({ extensionId }) {
const { results } = await this.fetch({ extensionId })
const activeVersions = results.filter(r => r.status === ACTIVE_STATUS)
if (activeVersions.length === 0) {
throw new NotFound({ prettyMessage: 'no active version found' })
}
const latest = activeVersions.reduce((a, b) =>
a.version > b.version ? a : b,
)
const version = latest.version_name ?? String(latest.version)
return this.constructor.render({ version })
}
}
View on GitHub (pinned to 766fd8bc89)
Solutions
- Verify the extensionId matches a published, active extension on extensions.gnome.org
- Check the extension's page for review status; resubmit/wait for approval if pending
- Use a different extensionId pointing to the actively maintained extension
- Remove the version badge until an active version exists
Defensive patterns
Strategy: validation
Validate before calling
const { results } = await (await fetch(`https://extensions.gnome.org/extension-query/?extension_id=${extensionId}`)).json()
if (!results || !results.some(r => r.status === 1)) console.warn('No active version for this extension') Type guard
const hasActiveVersion = (results) => Array.isArray(results) && results.some(r => r.status === 1)
Try / catch
try {
const version = await service.handle({ extensionId })
} catch (e) {
if (e.prettyMessage === 'no active version found') {
// render 'unavailable' badge
} else throw e
} Prevention
- Confirm the extension is approved/active on extensions.gnome.org before adding the badge
- Validate the extensionId number against the extension page URL
- Re-check the badge if the extension is under review
When it happens
Trigger: Querying a version badge for an extensionId whose versions were all rejected, disabled, or unreviewed on extensions.gnome.org; or the extensionId resolves to an extension with no approved releases.
Common situations: Extension under review or removed from the store; developer querying a draft/unapproved extension; typo in the numeric extensionId referencing an extension whose active version was withdrawn.
Related errors
AI-assisted analysis of badges/shields@766fd8bc89 (2026-08-30).
Data as JSON: /api/errors/765c2cd5b437f64a.
Report an issue: GitHub.