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

  1. Verify the module exists on Puppet Forge and has received user feedback
  2. Confirm the user/moduleName slug is correct
  3. 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

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.