{"record":{"id":"3c556c401a9378a9","repo":"angular/angular-cli","slug":"unsupported-package-manager-name","errorCode":null,"errorMessage":"Unsupported package manager: \"${name}\"","messagePattern":"Unsupported package manager: \"(.+?)\"","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"packages/angular/cli/src/package-managers/factory.ts","lineNumber":144,"sourceCode":" * @returns A promise that resolves to a new `PackageManager` instance.\n */\nexport async function createPackageManager(options: {\n  cwd: string;\n  configuredPackageManager?: ConfiguredPackageManagerInfo;\n  logger?: Logger;\n  dryRun?: boolean;\n  tempDirectory?: string;\n}): Promise<PackageManager> {\n  const { cwd, configuredPackageManager, logger, dryRun, tempDirectory } = options;\n  const host = NodeJS_HOST;\n\n  const result = await determinePackageManager(host, cwd, configuredPackageManager, logger, dryRun);\n  const { name, source } = result;\n  let { version } = result;\n\n  const descriptor = SUPPORTED_PACKAGE_MANAGERS[name];\n  if (!descriptor) {\n    throw new Error(`Unsupported package manager: \"${name}\"`);\n  }\n\n  // Do not verify if the package manager is installed during a dry run.\n  let initializationError: Error | undefined;\n  if (!dryRun && !version) {\n    try {\n      version = await getPackageManagerVersion(host, cwd, name, logger);\n    } catch {\n      if (source === 'default') {\n        initializationError = new Error(\n          `'${DEFAULT_PACKAGE_MANAGER}' was selected as the default package manager, but it is not installed or` +\n            ` cannot be found in the PATH. Please install '${DEFAULT_PACKAGE_MANAGER}' to continue.`,\n        );\n      } else {\n        initializationError = new Error(\n          `The project is configured to use '${name}', but it is not installed or cannot be` +\n            ` found in the PATH. Please install '${name}' to continue.`,\n        );","sourceCodeStart":126,"sourceCodeEnd":162,"githubUrl":"https://github.com/angular/angular-cli/blob/bb72145f9ab45aee29f523236b3a25cd0813a841/packages/angular/cli/src/package-managers/factory.ts#L126-L162","documentation":"Thrown by createPackageManager when the package manager name determined for the workspace (from config, lockfile detection, or user option) has no entry in SUPPORTED_PACKAGE_MANAGERS. The factory only knows how to construct descriptors for npm, yarn, pnpm, etc., and fails fast otherwise.","triggerScenarios":"Setting an unsupported packageManager in angular.json CLI config (e.g. \"bun\", \"cnpm\"); environment or config producing an unexpected manager name; typos in the configured value.","commonSituations":"Teams adopting newer managers (bun, deno-based tooling) that Angular CLI's factory does not recognize; misconfigured angular.json after manual edits; CI env vars overriding the manager with an unsupported name.","solutions":["Change the configured package manager to a supported one (npm, yarn, or pnpm).","Fix typos in the packageManager setting in angular.json or CLI options.","Upgrade Angular CLI to a version that supports your package manager.","Remove the override so lockfile auto-detection picks a supported manager."],"exampleFix":"// before (angular.json)\n\"cli\": { \"packageManager\": \"bun\" }\n// after\n\"cli\": { \"packageManager\": \"pnpm\" }","handlingStrategy":"validation","validationCode":"const SUPPORTED = ['npm', 'yarn', 'pnpm', 'bun']; // check your CLI version's supported list\nconst configured = angularJson.cli?.packageManager;\nif (configured && !SUPPORTED.includes(configured)) {\n  throw new Error(`packageManager \"${configured}\" is not supported by this Angular CLI version`);\n}","typeGuard":"function isSupportedManager(name) {\n  return ['npm', 'yarn', 'pnpm'].includes(name);\n}","tryCatchPattern":"try {\n  await ngUpdate(packages);\n} catch (e) {\n  if (e.message.includes('Unsupported package manager')) {\n    // retry with an explicit supported manager, e.g. --package-manager npm\n  }\n}","preventionTips":["Keep packageManager in angular.json limited to supported values.","Before adopting a new manager, confirm Angular CLI support for your version.","Avoid free-form env overrides of the package manager in CI.","Upgrade the CLI when your team switches package managers."],"tags":["angular-cli","package-manager","configuration","unsupported"],"backgroundTag":"unsupported-package-manager","analyzedSha":"bb72145f9ab45aee29f523236b3a25cd0813a841","analyzedAt":"2026-08-30T02:47:34.745Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}