angular/angular-cli · warning

Warning: The current version of Node (${nodeVersion}) is not

Error message

Warning: The current version of Node (${nodeVersion}) is not supported by Angular.

What it means

The Angular CLI's `ng version` command checks the running Node.js version against Angular's supported range. If unsupported (too old or too new/unreleased), it prints a warning so the developer knows the combination is untested, while still showing version output.

Source

Thrown at packages/angular/cli/src/commands/version/cli.ts:111

      },
      { label: 'Operating System', value: `${os} ${arch}` },
    );

    const maxHeaderLabelLength = Math.max(...headerInfo.map((l) => l.label.length));

    const header = headerInfo
      .map(
        ({ label, value }) =>
          colors.bold(label.padEnd(maxHeaderLabelLength + 2)) + `: ${colors.cyan(value)}`,
      )
      .join('\n');

    const packageTable = this.formatPackageTable(packages);

    logger.info([ASCII_ART, header, packageTable].join('\n\n'));

    if (unsupportedNodeVersion) {
      logger.warn(
        `Warning: The current version of Node (${nodeVersion}) is not supported by Angular.`,
      );
    }
  }

  /**
   * Formats the package table section of the version output.
   * @param versions A map of package names to their versions.
   * @returns A string containing the formatted package table.
   */
  private formatPackageTable(versions: Record<string, PackageVersionInfo>): string {
    const versionKeys = Object.keys(versions);
    if (versionKeys.length === 0) {
      return '';
    }

    const headers = {
      name: 'Package',

View on GitHub (pinned to bb72145f9a)

Solutions

  1. Switch to a Node.js version in Angular's supported range (use nvm: `nvm install --lts && nvm use --lts`).
  2. Update the Angular CLI/packages (`ng update`) if your Node is newer than the supported range of the installed CLI.
  3. Check `.nvmrc`/CI config to pin the supported Node version across the team.

Example fix

// before (package.json scripts relying on ambient node)
"start": "ng serve"
// after (pin engines and use a supported node via volta/engines)
"engines": { "node": "^20.19.0 || ^22.12.0 || >=24.0.0" }
Defensive patterns

Strategy: validation

Validate before calling

// check supported range before running ng commands
const supported = process.env.SUPPORTED_NODE || /^20\.|^22\.|^24\./;
if (!supported.test(process.versions.node)) {
  console.warn(`Node ${process.versions.node} may be unsupported; switch with nvm.`);
}

Prevention

When it happens

Trigger: Running any CLI command that renders version info (`ng version`, or `onMissingTarget` fallback paths) with a Node.js version outside the range declared in the CLI's supported engines (e.g. odd-numbered Node releases, EOL versions, or pre-release majors).

Common situations: Using an LTS-odd Node (17, 19, 23) that Angular doesn't support, running an old CLI on a newly upgraded Node, or CI images with a mismatched Node version.

Related errors


AI-assisted analysis of angular/angular-cli@bb72145f9a (2026-08-30). Data as JSON: /api/errors/2ffce287eb59e5d3. Report an issue: GitHub.