angular/angular-cli · error

No builder info were found for builder ${JSON.stringify(buil

Error message

No builder info were found for builder ${JSON.stringify(builderName)}.

What it means

The ..validateOptions job handler resolves builder info to get the option JSON schema before validating target options. If host.resolveBuilder(builderName) returns null, it throws 'No builder info were found for builder ...'.

Source

Thrown at packages/angular_devkit/architect/src/architect.ts:322

      if (!builderName) {
        throw new Error(`No builder were found for target ${targetStringFromTarget(target)}.`);
      }

      return builderName;
    },
    {
      name: '..getBuilderNameForTarget',
    },
  );
}

function _validateOptionsFactory(host: ArchitectHost, registry: json.schema.SchemaRegistry) {
  return createJobHandler<[string, json.JsonObject], never, json.JsonObject>(
    async ([builderName, options]) => {
      // Get option schema from the host.
      const builderInfo = await host.resolveBuilder(builderName);
      if (!builderInfo) {
        throw new Error(`No builder info were found for builder ${JSON.stringify(builderName)}.`);
      }

      const validation = await registry.compile(builderInfo.optionSchema);
      const { data, success, errors } = await validation(options);

      if (!success) {
        throw new json.schema.SchemaValidationException(errors);
      }

      return data as json.JsonObject;
    },
    {
      name: '..validateOptions',
    },
  );
}

export class Architect {

View on GitHub (pinned to bb72145f9a)

Solutions

  1. Install the builder package referenced by the name in the error message
  2. Verify the '<pkg>:<builder>' name matches an entry in the package's builders.json
  3. Check node_modules for the package and its builders.json integrity (reinstall if corrupted)
  4. Fix the builder field in angular.json if it references a non-existent builder

Example fix

// before (angular.json)
"builder": "@angular-devkit/build-angular:broswer"
// after
"builder": "@angular-devkit/build-angular:browser"
Defensive patterns

Strategy: validation

Validate before calling

try {
  await host.resolveBuilder(builderName);
} catch {
  throw new Error(`Builder ${builderName} not resolvable — install the package or fix the name`);
}

Type guard

function isKnownBuilderName(name) {
  return typeof name === 'string' && /^[^:]+:[^:]+$/.test(name) && installedPackages.has(name.split(':')[0]);
}

Try / catch

try {
  await architect.scheduleTarget(target, options);
} catch (e) {
  if (e.message.startsWith('No builder info were found for builder')) {
    console.error(`Install/verify the builder package: ${e.message}`);
  }
  throw e;
}

Prevention

When it happens

Trigger: Scheduling a target/builder whose builder name string cannot be resolved — the package or named builder does not exist in its builders.json, or the package is not installed.

Common situations: builder name typo ('@angular-devkit/build-angular:broswer'); builder package not installed or missing from devDependencies; custom builder name mismatch between angular.json and its builders.json.

Related errors


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