library builder: template type errors are not reported when .angular/cache is warm

Open
#34,123 2 comments 0 reactions 1 assignee View on GitHub

@alan-agius4 is already working on this.

Since Sep 18, 2026.

Assessment

This issue has not been assessed yet.

Description

angular/build:library area: @angular/build gemini-triaged
Command

build

Is this a regression?
  • Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was

No response

Description

Found while tesing #34106 cc @alan-agius4

With warm .angular/cache, editing only a components external template skips template type-checking: broken template builds with exit 0 and ends up in FESM.
Cold build fails correctly and so does ng-packagr in same setup.

Worst in CI where caches are restored

Minimal Reproduction
  1. Library with one component using templateUrl, strictTemplates on
  2. ng build mylib passes and fills .angular/cache
  3. Edit only the template to <p>{{ nope }}</p>
  4. ng build mylib again. getting exit 0 broken template in fesm2022/mylib.mjs
  5. rm -rf .angular/cache then build again, getting TS2339 as expected

P.S. Same on ngwr: [hidden]="notAProperty" in alert.html builds with a warm cache.

Exception or Error

Your Environment
@angular/build built from #34106 (e1fa5796) with the repo's own bazel build

Angular CLI 22.1.8, 
Angular 22.1.7, 
Node 24.16.0, 
pnpm 11, 
macOS 25.6, 
14 cores, 
24 GB
Anything else relevant?

library-compilation.ts only type-checks files in affectedFiles from the restored builder program, and TS doesn't know about .html, so nothing is checked.

aot-compilation.ts handles this with usingBuildInfo / includeTTC in findAffectedFiles;

porting that locally fixed it (warm + broken fails, warm + valid still passes and re-emits).

Dominant language
TypeScript
Stars
27k
Forks
11.8k
Avg merge
16h 35m
Merged PRs (30d)
176

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from angular/angular-cli

All issues in angular/angular-cli

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.