{"record":{"id":"f4a56efe0252ea40","repo":"angular/angular-cli","slug":"no-builder-info-were-found-for-builder-json-stri","errorCode":null,"errorMessage":"No builder info were found for builder ${JSON.stringify(builderName)}.","messagePattern":"No builder info were found for builder (.+?)\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/angular_devkit/architect/src/architect.ts","lineNumber":322,"sourceCode":"      if (!builderName) {\n        throw new Error(`No builder were found for target ${targetStringFromTarget(target)}.`);\n      }\n\n      return builderName;\n    },\n    {\n      name: '..getBuilderNameForTarget',\n    },\n  );\n}\n\nfunction _validateOptionsFactory(host: ArchitectHost, registry: json.schema.SchemaRegistry) {\n  return createJobHandler<[string, json.JsonObject], never, json.JsonObject>(\n    async ([builderName, options]) => {\n      // Get option schema from the host.\n      const builderInfo = await host.resolveBuilder(builderName);\n      if (!builderInfo) {\n        throw new Error(`No builder info were found for builder ${JSON.stringify(builderName)}.`);\n      }\n\n      const validation = await registry.compile(builderInfo.optionSchema);\n      const { data, success, errors } = await validation(options);\n\n      if (!success) {\n        throw new json.schema.SchemaValidationException(errors);\n      }\n\n      return data as json.JsonObject;\n    },\n    {\n      name: '..validateOptions',\n    },\n  );\n}\n\nexport class Architect {","sourceCodeStart":304,"sourceCodeEnd":340,"githubUrl":"https://github.com/angular/angular-cli/blob/bb72145f9ab45aee29f523236b3a25cd0813a841/packages/angular_devkit/architect/src/architect.ts#L304-L340","documentation":"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 ...'.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before (angular.json)\n\"builder\": \"@angular-devkit/build-angular:broswer\"\n// after\n\"builder\": \"@angular-devkit/build-angular:browser\"","handlingStrategy":"validation","validationCode":"try {\n  await host.resolveBuilder(builderName);\n} catch {\n  throw new Error(`Builder ${builderName} not resolvable — install the package or fix the name`);\n}","typeGuard":"function isKnownBuilderName(name) {\n  return typeof name === 'string' && /^[^:]+:[^:]+$/.test(name) && installedPackages.has(name.split(':')[0]);\n}","tryCatchPattern":"try {\n  await architect.scheduleTarget(target, options);\n} catch (e) {\n  if (e.message.startsWith('No builder info were found for builder')) {\n    console.error(`Install/verify the builder package: ${e.message}`);\n  }\n  throw e;\n}","preventionTips":["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"],"tags":["angular","architect","builder-resolution","schema-validation"],"backgroundTag":"builder-not-found","analyzedSha":"bb72145f9ab45aee29f523236b3a25cd0813a841","analyzedAt":"2026-08-30T02:47:34.745Z","schemaVersion":2},"datasetVersion":"2026-08-30T03:17:51.788Z"}