October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk3 min

Angular NG0100: Expression Changed After Checked

Angular NG0100 means a template-bound value changed after its check. Trace the binding and fix the update timing or state flow that made it unstable.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Angular’s ExpressionChangedAfterItHasBeenCheckedError (NG0100) means a template-bound value changed after Angular had already checked it. Angular throws this error only in development mode, where an additional check helps reveal bindings that do not stay stable. Find the expression that changed, then fix when or where its value is updated.

What NG0100 means

During a change-detection traversal, Angular checks each component once as it moves through the component tree. A binding that changes after its check leaves the view inconsistent for that pass; the development-mode verification check reports the change as NG0100. The error is a signal to inspect the state flow, not a diagnosis of one particular bug. Angular’s NG0100 guide explains the error and its development-mode scope.

As an Amazon Associate I earn from qualifying purchases.

How to find the expression that changed

  1. Read the complete error. Note any expression, previous and current values, component, or template location included in the message.
  2. Follow the source-mapped stack trace. With Angular CLI source maps enabled, use the call stack to trace the reported change back to the component and template.
  3. Inspect the binding and every writer. Search for assignments to the property and for methods, getters, subscriptions, callbacks, or child components that can change it. Check when each runs relative to the component’s change-detection pass.
  4. Make template reads stable. A method or getter used by a template should return a stable value for the same state and should not mutate state that other bindings depend on.

Fix the update at its source

Initialize state before the template check

For initial component state, use the constructor or ngOnInit where appropriate. Angular calls ngOnInit after the initial inputs are initialized and before the component’s template is initialized. Use ngOnChanges when deriving state from input changes; it runs before the component’s own template is checked. See the Angular lifecycle guide for the current hook ordering.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Avoid changing checked state in after-content and after-view hooks

ngAfterContentInit, ngAfterContentChecked, ngAfterViewInit, and ngAfterViewChecked are intended for work involving initialized content or view queries. Mutating template-bound state in these hooks can trigger NG0100 because the relevant view has already been checked. The checked hooks also run repeatedly, so using them to force another update can add unnecessary work. Prefer moving initialization earlier or redesigning the state flow.

Correct child-to-parent updates

If a child changes a value that its parent has already used in the current traversal, the parent’s binding may no longer match what Angular checked. Trace the update to the component that owns the state and arrange for the value to be supplied at an appropriate point in the flow, rather than mutating an already-checked parent from a child hook.

Use computed state for signal-derived values

When one signal-derived value depends on other state, use computed to express that relationship. Angular cautions against using effect to propagate state: effects can create NG0100, circular updates, or unnecessary change-detection cycles. See Angular’s effects guide.

In zoneless apps, ensure updates notify Angular

In a zoneless application, changing a value is not by itself a guarantee that Angular will schedule the needed view update. Use an update mechanism that notifies Angular, such as updating a signal read by the template; where appropriate, ChangeDetectorRef.markForCheck() can mark a view for checking. The zoneless guide describes notification options. A missing notification can cause an update to go undetected in production; it is a distinct concern from an NG0100 error, which Angular documents as development-mode-only.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What not to treat as a general fix

Angular documents a forms-specific behavior: when a value change originates in an input binding, NgModel triggers a second change detection to avoid this error. That behavior belongs to NgModel; it is not a general-purpose pattern to copy into unrelated components. Likewise, delaying a mutation or triggering extra checks without correcting the underlying timing can hide the symptom while leaving state flow fragile.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Version scope

The current Angular documentation describes NG0100 as a development-mode error. Error details and behavior can vary across Angular releases and configurations, so use documentation for the version your application runs rather than assuming all historical releases behave identically.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.