{"record":{"id":"5ae9392a79da2ab1","repo":"angular/angular-cli","slug":"cannot-find-builder-json-stringify-builderstr","errorCode":null,"errorMessage":"Cannot find builder ${JSON.stringify(builderStr)}.","messagePattern":"Cannot find builder (.+?)\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/angular_devkit/architect/node/node-modules-architect-host.ts","lineNumber":178,"sourceCode":"    }\n\n    let buildersManifestPath = path.normalize(buildersManifestRawPath);\n    if (path.isAbsolute(buildersManifestRawPath) || buildersManifestRawPath.startsWith('..')) {\n      throw new Error(\n        `Package \"${packageName}\" has an invalid builders manifest path: \"${buildersManifestRawPath}\"`,\n      );\n    }\n\n    buildersManifestPath = path.join(path.dirname(packageJsonPath), buildersManifestPath);\n    const buildersManifest = JSON.parse(\n      readFileSync(buildersManifestPath, 'utf-8'),\n    ) as BuilderSchema;\n    const buildersManifestDirectory = path.dirname(buildersManifestPath);\n\n    // Attempt to locate an entry for the specified builder by name\n    const builder = buildersManifest.builders?.[builderName];\n    if (!builder) {\n      throw new Error(`Cannot find builder ${JSON.stringify(builderStr)}.`);\n    }\n\n    // Resolve alias reference if entry is a string\n    if (typeof builder === 'string') {\n      return this.resolveBuilder(\n        builder,\n        path.dirname(packageJsonPath),\n        (seenBuilders ?? new Set()).add(builderStr),\n      );\n    }\n\n    // Determine builder implementation path (relative within package only)\n    const implementationPath = builder.implementation && path.normalize(builder.implementation);\n    if (!implementationPath) {\n      throw new Error('Could not find the implementation for builder ' + builderStr);\n    }\n    if (path.isAbsolute(implementationPath) || implementationPath.startsWith('..')) {\n      throw new Error(","sourceCodeStart":160,"sourceCodeEnd":196,"githubUrl":"https://github.com/angular/angular-cli/blob/bb72145f9ab45aee29f523236b3a25cd0813a841/packages/angular_devkit/architect/node/node-modules-architect-host.ts#L160-L196","documentation":"After loading the package's builders manifest, resolveBuilder looks up the builder by name and throws when the manifest has no entry for it. The package has builders, but not the one requested.","triggerScenarios":"Using 'package:builderName' where builderName is absent from builders.json 'builders' map, e.g. after a builder was renamed (browser -> application) or misspelled.","commonSituations":"Upgrading @angular-devkit/build-angular where a builder was replaced/renamed; typo in builder name; copying builder names between packages.","solutions":["Check the package's builders.json for valid builder names and use one of them.","Update angular.json to the renamed builder (e.g. ':browser' -> ':application').","Downgrade or pin the builder package to a version that still contains the builder."],"exampleFix":"// before\n\"builder\": \"@angular-devkit/build-angular:dev-server-build\"\n// after\n\"builder\": \"@angular-devkit/build-angular:dev-server\"","handlingStrategy":"validation","validationCode":"const manifest = require(require.resolve(`${packageName}/builders.json`, { paths: [process.cwd()] }));\nif (!(builderName in manifest.builders)) throw new Error(`Builder \"${builderName}\" not found in ${packageName}. Available: ${Object.keys(manifest.builders).join(', ')}`);","typeGuard":null,"tryCatchPattern":"try { await host.resolveBuilder(builderStr); } catch (e) { if (String(e.message).startsWith('Cannot find builder')) { /* switch to an existing builder name from the manifest */ } else throw e; }","preventionTips":["After upgrading builder packages, diff angular.json builders against the new manifest.","Use `ng build --help` or package docs to list valid builders.","Avoid copying builder strings across different packages."],"tags":["angular","builder","configuration"],"backgroundTag":"builder-not-found","analyzedSha":"bb72145f9ab45aee29f523236b3a25cd0813a841","analyzedAt":"2026-08-30T02:47:34.745Z","schemaVersion":2},"datasetVersion":"2026-08-30T08:17:16.595Z"}