Fix a failing install

Go from a failing install to the cause in minutes — whether it's a policy hold, a blocked package, a Token problem, or a configuration mistake.

With your agent

#

"Why did last night's install fail?"

  • Pulls the CI run's report — the token exchanges, resolutions, and install attempts PackageMaze saw.
  • Reads the client's own error text for the package and version, then matches the failure to a likely cause below and suggests the fix.

Requires a connected agent. See Connect your agent.

By hand

#

Match the client's error text to a cause. Each fix is one step. When a Feed rule refuses an npm request, npm's error line carries PackageMaze refused and names the Policy, the version, and when a hold ends; pip and uv print only the status.

CauseSymptomFix
Version held by the Minimum Age PolicyA brand-new upstream version is missing from the Feed's index; the Feed serves the previous version meanwhile. npm prints code ETARGET and No matching version found for <package>@<version>, pnpm ERR_PNPM_NO_MATCHING_VERSION, pip No matching distribution found for <package>==<version>, uv there is no version of <package>==<version>. When a lockfile already pins the held version, its fetch answers 404 and npm prints PackageMaze refused <package> <version> on Feed <organization>/<feed> because the Feed's Minimum Age Policy has not released this upstream Package Version yet; the hold ends at <time>; pip and uv print only the 404.Pin the newest version the Feed serves and say when the hold ends (24 hours after the upstream publish by default). Do not add another registry or index.
Version refused by a Feed PolicyThe License, Install Scripts, Native Code, Attestation, Distribution Format, or Yanked Artifact Policy leaves a version out of the index, with the same client lines as a hold. A pinned fetch's 404 names the Policy, for example because the Feed's License Policy does not allow the package's declared license.Pin a version the Policy allows. An Organization Admin can change the Policy or exempt the package in Feed settings.
Package blocked by a ruleAn upstream package name is refused by an allow or block rule. npm prints code E404 and 404 Not Found - GET <Feed URL><package> - PackageMaze refused <package> on Feed <organization>/<feed> because the Feed's upstream policy does not serve this package; pip prints No matching distribution found for <package> with (from versions: none); uv prints <package> was not found in the package registry.Allow the name — or remove the block — in Feed settings.
Version delistedA version that used to resolve no longer does, with the same client lines as a hold. A pinned fetch's 404 reads because the Package Version is delisted from the Feed.Pin a different version; delisting is deliberate, usually after a compromise.
Token expired, revoked, or missing Feed accessnpm prints code E401 and Unable to authenticate, your authentication token seems to be invalid. pip prints No matching distribution found for <package> with (from versions: none), the same lines as a blocked package; uv adds could not be queried due to a lack of valid authentication credentials (401 Unauthorized).Rotate the Token or create a new Token with Read access to the right Feed.
Wrong Feed URL shapenpm prints 404 Not Found - GET <url> with nothing after the URL; pip prints No matching distribution found for <package> with (from versions: none).Use the Feed URL with a trailing slash, https://pkg.packagemaze.com/<organization>/<feed>/.
pnpm ignoring committed placeholdersOn pnpm 10.34.2+ or 11.5.3+, install is unauthorized despite an .npmrc credential placeholder.Use user-level config or a CI temp npm config (NPM_CONFIG_USERCONFIG), not committed ${...}.
CI missing id-token permission or access rulesetup-maze can't mint a Token in GitHub Actions.Add permissions.id-token: write and the Feed's access rule; diagnose with maze auth exchange-oidc --feed <organization>/<feed> --purpose install --format github-output.