Skip to content

Signal form .reset() does not clear Angular Material error styling #33467

Description

@mihai3636

Which @angular/* package(s) are the source of the bug?

core, forms

Is this a regression?

No

Description

When using Angular Material form fields (mat-form-field) with signal-based forms (@angular/forms/signals), resetting the form after submission causes the Material input to display error styling (red outline) even though the field should no longer be in a touched or dirty state.

After calling signalForm().reset() on submit, the field value is correctly reset to an empty string. However, the Material form field renders as invalid with error styling applied. According to Angular Material's documented behavior, error styling should only be shown when the control has been touched. Since reset() is expected to clear both the touched and dirty states, the field should return to its pristine, untouched appearance — without any validation error indicators.

Please provide a link to a minimal reproduction of the bug

https://stackblitz.com/github/mihai3636/2026--angular-signal-form-material-bug?file=src%2Fapp%2Fapp.ts

Please provide the exception or error you saw

N/A

Please provide the environment you discovered this bug in (run ng version)

Angular CLI       : 22.0.4
Angular           : 22.0.4
Node.js           : 26.1.0
Package Manager   : npm 11.13.0
Operating System  : win32 x64

┌───────────────────────────┬───────────────────┬───────────────────┐
│ Package                   │ Installed Version │ Requested Version │
├───────────────────────────┼───────────────────┼───────────────────┤
│ @angular/build            │ 22.0.4            │ ^22.0.0           │
│ @angular/cdk              │ 22.0.2            │ ^22.0.2           │
│ @angular/cli              │ 22.0.4            │ ^22.0.0           │
│ @angular/common           │ 22.0.4            │ ^22.0.0           │
│ @angular/compiler         │ 22.0.4            │ ^22.0.0           │
│ @angular/compiler-cli     │ 22.0.4            │ ^22.0.0           │
│ @angular/core             │ 22.0.4            │ ^22.0.0           │
│ @angular/forms            │ 22.0.4            │ ^22.0.0           │
│ @angular/material         │ 22.0.2            │ ^22.0.2           │
│ @angular/platform-browser │ 22.0.4            │ ^22.0.0           │
│ @angular/router           │ 22.0.4            │ ^22.0.0           │
│ rxjs                      │ 7.8.2             │ ~7.8.0            │
│ typescript                │ 6.0.3             │ ~6.0.2            │
│ vitest                    │ 4.1.9             │ ^4.0.8            │
└───────────────────────────┴───────────────────┴───────────────────┘

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions