badges/shields · info · NotFound
unknown
Error message
unknown
What it means
The Puppet Forge module feedback score badge throws NotFound with 'unknown' when the Forge API response has a null `feedback_score`. Some modules have never received a feedback score, so the service signals the score is unknown rather than rendering a badge.
Source
Thrown at services/puppetforge/puppetforge-module-feedback.service.js:43
},
),
},
},
}
static defaultBadgeData = { label: 'score' }
static render({ score }) {
return {
message: `${score}%`,
color: coveragePercentageColor(score),
}
}
async handle({ user, moduleName }) {
const data = await this.fetch({ user, moduleName })
if (data.feedback_score == null) {
throw new NotFound({ prettyMessage: 'unknown' })
}
return this.constructor.render({ score: data.feedback_score })
}
}
View on GitHub (pinned to 766fd8bc89)
Solutions
- Verify the module exists on Puppet Forge and has received user feedback
- Confirm the user/moduleName slug is correct
- Wait for the Forge to populate feedback data for a recently published module
Defensive patterns
Strategy: validation
Validate before calling
const meta = await fetch(`https://forgeapi.puppet.com/v3/modules/${user}-${moduleName}`)
const { feedback_score } = await meta.json()
if (feedback_score == null) console.warn('no feedback score yet') Type guard
function hasFeedbackScore(data) { return data != null && typeof data.feedback_score === 'number' } Try / catch
try {
const badge = await service.handle({ user, moduleName })
} catch (err) {
if (err instanceof NotFound && err.prettyMessage === 'unknown') {
return renderBadge({ label: 'feedback', message: 'unknown' })
}
throw err
} Prevention
- Only use the feedback badge for established modules with ratings
- Treat null feedback_score as expected for new modules
- Verify slugs against the Forge module page
When it happens
Trigger: Requesting the feedback-score badge for a module whose Forge API `feedback_score` is null — typically modules with no rating data or recently updated metrics.
Common situations: Newly published modules before the Forge computes scores; modules with insufficient downloads/ratings; stale module slugs.
Related errors
AI-assisted analysis of badges/shields@766fd8bc89 (2026-08-30).
Data as JSON: /api/errors/8fc9ea28afcf0d43.
Report an issue: GitHub.