angular/angular-cli · warning
Package ${name} was not found on the registry. Skipping.
Error message
Package ${name} was not found on the registry. Skipping. What it means
When building the set of npm dependencies to update, each raw dependency is tested with isPkgFromRegistry to confirm the specifier refers to a registry package. If that check throws (e.g., the package or version cannot be resolved against the registry), the CLI warns that the package was not found and filters it out of the update (returns false).
Source
Thrown at packages/angular/cli/src/commands/update/update-resolver.ts:892
const rawJson = readFileSync(packageJsonPath, 'utf8');
const packageJsonContent = JSON.parse(rawJson) as PackageManifest;
const getDependencies = (deps: Record<string, string> | undefined) =>
Object.entries(deps ?? {}).map(([name, range]) => [name, range] as const);
const allRawDeps = [
...getDependencies(packageJsonContent.dependencies),
...getDependencies(packageJsonContent.devDependencies),
...getDependencies(packageJsonContent.peerDependencies),
];
const npmDeps = new Map(
allRawDeps.filter(([name, specifier]) => {
try {
return isPkgFromRegistry(name, specifier);
} catch {
logger.warn(`Package ${name} was not found on the registry. Skipping.`);
return false;
}
}) as [string, VersionRange][],
);
const packagesOption = options.packages ?? [];
const normalizedPackages = packagesOption.reduce((acc, curr) => {
return acc.concat(curr.split(','));
}, [] as string[]);
options.packages = normalizedPackages;
if (options.migrateOnly && options.from) {
if (options.packages.length !== 1) {
throw new Error('--from requires that only a single package be passed.');
}
}
View on GitHub (pinned to bb72145f9a)
Solutions
- Check the package name and specifier in package.json for typos and correct them.
- If it's a private package, ensure the registry scope is configured (.npmrc with the right registry/auth) and you are authenticated.
- Verify network/registry access (npm ping / curl the registry URL); fix proxy or VPN settings if needed.
- Proceed if the skip is fine — the CLI updates remaining registry packages and leaves the skipped one untouched.
- Temporarily remove the problematic dependency, run the update, then re-add it.
Example fix
// before: package.json with unresolvable dep
"dependencies": { "@myorg/ui": "^1.0.0" } // private, no registry configured
// after: .npmrc adds scope registry
@myorg:registry=https://npm.mycompany.com/
//always-auth=true Defensive patterns
Strategy: validation
Validate before calling
for (const [name, spec] of Object.entries(pkg.dependencies ?? {})) {
if (spec.startsWith('file:') || spec.startsWith('git') || spec.startsWith('link:')) continue;
const res = await fetch(`https://registry.npmjs.org/${encodeURIComponent(name)}`);
if (!res.ok) console.warn(`${name} not resolvable on registry; ng update will skip it`);
} Type guard
function isRegistrySpec(spec: string): boolean {
return !/^(file:|git(\+|:)|link:|http:\/\/|\.\.?\/)/.test(spec);
} Try / catch
try {
await ngUpdate(pkgs);
} catch (e) {
const skipped = /was not found on the registry/.exec(String(e));
if (skipped) logger.warn(`${skipped[1]} skipped; update it separately once registry access works`);
} Prevention
- Configure .npmrc scopes/auth for private packages before ng update.
- Fix typos in dependency names/specifiers in package.json.
- Confirm registry connectivity (npm ping) before large update runs.
- Avoid mixing git/file URL deps into ng update runs; update them separately.
When it happens
Trigger: Running `ng update` when the project's package.json contains a dependency whose name/specifier cannot be validated against the npm registry — isPkgFromRegistry throws inside the filter over allRawDeps, and the dependency is skipped.
Common situations: Private packages not present on the configured registry; typo'd package names; offline/air-gapped environments or proxy misconfigurations; git/file/tarball URL dependencies mixed with registry updates; registry outage (npm 503s).
Related errors
- Could not find @angular/cli version '${runnerVersion}'.
- Unable to load package information from registry.
- An unexpected error happened; package ${name} has no version
- ${parsedError.summary}
- Unable to load package information from registry: ${e.messag
AI-assisted analysis of angular/angular-cli@bb72145f9a (2026-08-30).
Data as JSON: /api/errors/3aed22cd2ba2f628.
Report an issue: GitHub.