# Angular v22.1.3 — 22.1.3 - Product: Angular (https://whatsnew.fyi/product/angular) - Vendor: Google - Date: 2026-08-19 - Version: v22.1.3 - Original notes: https://github.com/angular/angular/releases/tag/v22.1.3 - Permalink: https://whatsnew.fyi/product/angular/releases/v22.1.3 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **fixed** — Detect object trigger values with Object.hasOwn in animations - **fixed** — Preserve literal key union in KeyValuePipe.transform() - **fixed** — Preserve &ngsp; between sibling control flow blocks in compiler - **fixed** — Accept readonly arrays for setClassMetadata decorators - **fixed** — Allow readonly arrays in RawScopeInfoFromDecorator - **fixed** — Expose debuggableFn for non-computed signal graph nodes - **fixed** — Prevent orphaned requestIdleCallback handle from re-entrant scheduling - **fixed** — Replace all hasOwnProperty usages with Object.hasOwn - **fixed** — Stop running further effects once one destroys the view mid-flush - **fixed** — Throw a descriptive error instead of crashing when a hydration node is missing - **fixed** — Throw NG0500 instead of a raw TypeError on element hydration mismatch - **fixed** — Report forbidden 2way bindings on when FormField is applied - **fixed** — Warn in dev mode when ngModel cannot reach parent NgForm across component boundary - **fixed** — Cancel oversized fetch response bodies - **fixed** — Recover project for external templates in solution-style workspaces - **fixed** — Disallow event handler attributes in Meta - **fixed** — Throw a descriptive error when insertBefore reference node is missing - **fixed** — Pass correct component to canDeactivate for named outlets in componentless parent routes ###### animations | Commit | Description | | -- | -- | | [![fix - d9620e0f1b](https://img.shields.io/badge/d9620e0f1b-fix-green)](https://github.com/angular/angular/commit/d9620e0f1b85ff5896e4d725c52c5ad6c30e1af9) | detect object trigger values with Object.hasOwn | ###### common | Commit | Description | | -- | -- | | [![fix - b3c78a5081](https://img.shields.io/badge/b3c78a5081-fix-green)](https://github.com/angular/angular/commit/b3c78a50816af5685b2a6ed51166d08941c09946) | preserve literal key union in KeyValuePipe.transform() | ###### compiler | Commit | Description | | -- | -- | | [![fix - 94f0b9a371](https://img.shields.io/badge/94f0b9a371-fix-green)](https://github.com/angular/angular/commit/94f0b9a3710ad000cf927caf5333db3582db1126) | preserve &ngsp; between sibling control flow blocks | ###### core | Commit | Description | | -- | -- | | [![fix - afe529cb2d](https://img.shields.io/badge/afe529cb2d-fix-green)](https://github.com/angular/angular/commit/afe529cb2d97e766b4f9014c3b6864420b7c8deb) | accept readonly arrays for setClassMetadata decorators | | [![fix - 2c72fe3797](https://img.shields.io/badge/2c72fe3797-fix-green)](https://github.com/angular/angular/commit/2c72fe3797ff92ead7a2531d32665fac370b4688) | allow readonly arrays in RawScopeInfoFromDecorator | | [![fix - ef2ce9a098](https://img.shields.io/badge/ef2ce9a098-fix-green)](https://github.com/angular/angular/commit/ef2ce9a09802faa5ffff0860f473c4018f25f2ac) | expose debuggableFn for non-computed signal graph nodes | | [![fix - 7bcce260f5](https://img.shields.io/badge/7bcce260f5-fix-green)](https://github.com/angular/angular/commit/7bcce260f51dc8a099c8e63f1e1e3ff8f580dcf1) | prevent orphaned requestIdleCallback handle from re-entrant scheduling | | [![fix - 44137117b3](https://img.shields.io/badge/44137117b3-fix-green)](https://github.com/angular/angular/commit/44137117b361f5bbad64e3d488e9aefd2f9ec5cb) | replace all hasOwnProperty usages with Object.hasOwn | | [![fix - 85f12a5a13](https://img.shields.io/badge/85f12a5a13-fix-green)](https://github.com/angular/angular/commit/85f12a5a130aa7fd5cd21fce3eb786a2262480e1) | stop running further effects once one destroys the view mid-flush | | [![fix - c04931c88b](https://img.shields.io/badge/c04931c88b-fix-green)](https://github.com/angular/angular/commit/c04931c88b1c7959cb95abd28cf5b3614d97e168) | throw a descriptive error instead of crashing when a hydration node is missing | | [![fix - 601d1f6576](https://img.shields.io/badge/601d1f6576-fix-green)](https://github.com/angular/angular/commit/601d1f6576b296748f56ffb50646bb1808a7c0fc) | throw NG0500 instead of a raw TypeError on element hydration mismatch | ###### forms | Commit | Description | | -- | -- | | [![fix - 83450d2924](https://img.shields.io/badge/83450d2924-fix-green)](https://github.com/angular/angular/commit/83450d292443cae811e87ab61020f3ed72d27d77) | report forbidden 2way bindings on when `FormField` is applied | | [![fix - 5cb4ea7e35](https://img.shields.io/badge/5cb4ea7e35-fix-green)](https://github.com/angular/angular/commit/5cb4ea7e355bb9ea43efa15a03dc38c53d2e4faf) | warn in dev mode when ngModel cannot reach parent NgForm across component boundary | ###### http | Commit | Description | | -- | -- | | [![fix - 0cd635e9e2](https://img.shields.io/badge/0cd635e9e2-fix-green)](https://github.com/angular/angular/commit/0cd635e9e2c409a045eaeaf920a226ef54aecc48) | cancel oversized fetch response bodies | ###### language-server | Commit | Description | | -- | -- | | [![fix - 14fbe04612](https://img.shields.io/badge/14fbe04612-fix-green)](https://github.com/angular/angular/commit/14fbe04612d29460c5d01d6c65cde579f0a42e95) | recover project for external templates in solution-style workspaces | ###### platform-browser | Commit | Description | | -- | -- | | [![fix - 3ddcb1a101](https://img.shields.io/badge/3ddcb1a101-fix-green)](https://github.com/angular/angular/commit/3ddcb1a10168ead616e523bbe044f4c39ada4cca) | disallow event handler attributes in Meta | | [![fix - _[Truncated at 4000 characters — full notes: https://github.com/angular/angular/releases/tag/v22.1.3]_