{"record":{"id":"22e3e734e5c8a308","repo":"badges/shields","slug":"no-releases","errorCode":null,"errorMessage":"no releases","messagePattern":"no releases","errorType":"exception","errorClass":"InvalidResponse","httpStatus":424,"severity":"error","filePath":"services/bower/bower-version.service.js","lineNumber":27,"sourceCode":"  static openApi = {\n    '/bower/v/{packageName}': {\n      get: {\n        summary: 'Bower Version',\n        parameters: pathParams({\n          name: 'packageName',\n          example: 'bootstrap',\n        }),\n      },\n    },\n  }\n\n  static defaultBadgeData = { label: 'bower' }\n\n  static transform(data) {\n    const version = data.latest_release_number\n\n    if (!version) {\n      throw new InvalidResponse({ prettyMessage: 'no releases' })\n    }\n\n    return version\n  }\n\n  async handle({ packageName }) {\n    const data = await this.fetch({ packageName })\n    const version = this.constructor.transform(data)\n\n    return renderVersionBadge({ version })\n  }\n}\n","sourceCodeStart":9,"sourceCodeEnd":40,"githubUrl":"https://github.com/badges/shields/blob/766fd8bc89a90b8534dc573ab72dec30215ab1ec/services/bower/bower-version.service.js#L9-L40","documentation":"The Bower version badge reads latest_release_number from normalized registry data. If the package has no releases (field is falsy), transform throws InvalidResponse 'no releases'. This distinguishes a package that exists but was never published with a version from other failures.","triggerScenarios":"Requesting a Bower version badge for a package whose normalized data has no latest_release_number — the package exists in the registry but has no tagged versions, so transform throws InvalidResponse({ prettyMessage: 'no releases' }).","commonSituations":"Packages registered in the Bower registry with only a master branch and no git tags; repos where tags do not follow semver and were rejected; newly registered packages not yet released; package renamed upstream so the old registry entry is stale.","solutions":["Publish a tagged release (git tag + push) for the package and re-check the badge.","Verify the package name in the badge URL matches the Bower registry entry.","Ensure tags follow valid semver so the registry can pick a latest version.","If the package is abandoned with no releases, use a different badge or repository."],"exampleFix":"// before\ngit push origin main\n// after\ngit tag v1.0.0 && git push origin main --tags","handlingStrategy":"validation","validationCode":"const data = await fetchNormalizedBowerData(pkg)\nif (!data.latest_release_number) {\n  console.warn(`Bower package '${pkg}' has no releases`)\n}","typeGuard":"function hasRelease(data) {\n  return typeof data?.latest_release_number === 'string' && data.latest_release_number.length > 0\n}","tryCatchPattern":"try {\n  return await bowerVersionBadge(pkg)\n} catch (e) {\n  if (/no releases/.test(e.message)) return renderBadge('no releases')\n  throw e\n}","preventionTips":["Tag releases with valid semver and push tags","Confirm the package is registered in the Bower registry under the exact name","Check the registry entry when the package is renamed upstream"],"tags":["bower","version","invalid-response","releases","registry"],"backgroundTag":"missing-release","analyzedSha":"766fd8bc89a90b8534dc573ab72dec30215ab1ec","analyzedAt":"2026-08-30T01:40:27.499Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}