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
- Install the builder package referenced by the name in the error message
- Verify the '<pkg>:<builder>' name matches an entry in the package's builders.json
- Check node_modules for the package and its builders.json integrity (reinstall if corrupted)
- 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
- Keep all referenced builder packages in devDependencies
- Spell-check builder names against each package's builders.json
- Reinstall node_modules when builder resolution suddenly fails
- Add a resolveBuilder preflight in custom scheduling scripts
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
- Package "${packageName}" has an invalid builder schema path:
- Builder is not a builder
- Invalid target string:
- Cannot load builder for builderInfo ${JSON.stringify(info, n
- Invalid target: ${JSON.stringify(target)}.
AI-assisted analysis of angular/angular-cli@bb72145f9a (2026-08-30).
Data as JSON: /api/errors/f4a56efe0252ea40.
Report an issue: GitHub.