badges/shields · error · NotFound
not found
Error message
not found
What it means
The Chrome Web Store badge service throws NotFound with message 'not found' when the extension's user count returned by the scraped Chrome Web Store page is null. It means the extension page could not yield a downloads/users figure, typically because the extension does not exist or the page structure lacks the data.
Source
Thrown at services/chrome-web-store/chrome-web-store-users.service.js:34
parameters: pathParams({
name: 'storeId',
example: 'ogffaloegjglncjfehdfplabnoondfjo',
}),
},
},
}
static defaultBadgeData = { label: 'users' }
static transform(users) {
return String(users.replaceAll(',', ''))
}
async handle({ storeId }) {
const chromeWebStore = await this.fetch({ storeId })
const downloads = chromeWebStore.users()
if (downloads == null) {
throw new NotFound({ prettyMessage: 'not found' })
}
return renderDownloadsBadge({
downloads: this.constructor.transform(downloads),
})
}
}
const ChromeWebStoreDownloads = redirector({
category: 'downloads',
route: {
base: 'chrome-web-store/d',
pattern: ':storeId',
},
transformPath: ({ storeId }) => `/chrome-web-store/users/${storeId}`,
dateAdded: new Date('2019-02-27'),
})
export { ChromeWebStoreDownloads, ChromeWebStoreUsers }View on GitHub (pinned to 766fd8bc89)
Solutions
- Verify the storeId by opening https://chromewebstore.google.com/detail/<storeId> in a browser and confirming the extension exists and shows a user count
- Retry later if the Chrome Web Store was temporarily unavailable or its markup changed
- Check for trailing whitespace or wrong ID casing in the badge URL
- Report to the service maintainers if the live page shows a user count but the badge still returns 'not found'
Example fix
// before /badge/chrome-web-store/users/invalid-id // after /badge/chrome-web-store/users/nkemmklpomlogoijgonofhndcffbppgb
Defensive patterns
Strategy: validation
Validate before calling
const STORE_ID_RE = /^[a-p]{32}$/;
if (!STORE_ID_RE.test(storeId)) throw new Error(`invalid Chrome Web Store storeId: ${storeId}`); Type guard
function hasUsers(page) { return page != null && typeof page.users === 'function'; } Try / catch
try {
const badge = await fetchBadge(`/chrome-web-store/users/${storeId}`);
} catch (e) {
if (e.status === 404) console.warn(`extension ${storeId} not found or has no user data`);
else throw e;
} Prevention
- Verify the 32-character storeId against the Chrome Web Store URL before building the badge
- Confirm the extension is publicly listed and shows a user count
- Re-check the badge when the Chrome Web Store UI changes
- Cache a last-known-good state so a transient scrape failure doesn't blank your README
When it happens
Trigger: Calling the chrome-web-store users badge with a storeId whose extension page cannot be scraped or reports no user count; `chromeWebStore.users()` returns null.
Common situations: Typos or invalid storeId formats, unpublished/removed Chrome extensions, region-restricted extensions, or Chrome Web Store layout changes breaking the scraper.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- not found
- not found
- no jobs found
- unknown type, provider, or upstream issue
- artifact or ${versionType}version not found
AI-assisted analysis of badges/shields@766fd8bc89 (2026-08-30).
Data as JSON: /api/errors/3471446f3ee8a8f4.
Report an issue: GitHub.