Overview of Chainguard's package repositories
Overview of Chainguard's package repositories, highlighting the different repositories and how to access them.
For the complete documentation index, see llms.txt.
Chainguard Libraries applies security controls to every package it serves through the Chainguard Repository: malware and greyware scanning, and configurable policies such as a cooldown period. When one of these controls blocks a package or version, Chainguard withholds it and the install fails.
Chainguard also surfaces errors for other reasons, such as a missing entitlement or invalid authentication.
Note: If your build tool or repository manager pulls from a public registry as a fallback, it may fetch a blocked package and bypass Chainguard’s controls. Chainguard recommends pulling all open source packages through the Chainguard Repository only.
Chainguard blocks a package or version for one of the following reasons:
To resolve a blocked package, choose a version that is not blocked, wait for a pending scan or cooldown period to pass, or configure an override to allow an exception for a specific package or version.
How a blocked package appears during development will depend on the package manager and language ecosystem:
npm surfaces the block reason directly, reporting a blocked version as a 403 with the reason (for example, MALWARE_DETECTED).pnpm, yarn, pip, uv, poetry, Maven, and Gradle) typically report a blocked version as a not found or no matching version found error. When an entire package (all of its versions) is blocked for malware, a 409 error surfaces across most package managers.The following errors indicate problems with authentication, entitlements, or a nonexistent package.
| Error | Meaning | Next steps |
|---|---|---|
Not authenticated (401) | Your pull token is missing or expired. | Reconfigure access. See Access Chainguard Libraries. |
Missing entitlement (403) | Your organization is not entitled to the specific ecosystem. | See Manage library entitlements. |
Package does not exist (404) | The requested package or version does not exist. | Confirm that the package name and version exist on the public upstream registry. |
Last updated: 2026-08-13 12:00