DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk4 min

Angular NG0506: What “Application Remains Unstable” Means and How to Fix It

Angular NG0506 means the app has not reported stability within 10 seconds during client hydration. Identify the pending work and apply the fix for your change-detection mode.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Angular warning NG0506 means the application did not report itself as stable within 10 seconds during client-side hydration. It identifies a stability delay, not the task causing it. Find the work that is keeping the app busy, then decide whether to stop it, move it until after stability, or track it explicitly for server-side rendering.

What does NG0506 mean?

Angular displays NG0506 when ApplicationRef.isStable has not emitted true within 10 seconds. The warning applies during browser hydration; it does not by itself say whether a particular request, timer, effect, or library is responsible. Angular’s NG0506 reference describes the warning, while its hydration guide explains that hydration and post-hydration work wait for application stability.

As an Amazon Associate I earn from qualifying purchases.

Stability also matters outside the browser: Angular uses it during server-side rendering (SSR) serialization, and in the browser it starts post-hydration cleanup of unclaimed DOM nodes. A delayed stable signal can therefore postpone hydration-related work. Treat the warning as a reason to inspect pending work and verify the app’s behavior, not as proof that hydration has failed.

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

First identify the app’s Angular version and change-detection mode

The likely causes and the right diagnostics depend on whether the app uses Zone.js or zoneless change detection. Angular’s current guide says zoneless is the default starting in Angular v21; Angular v20 projects can opt in, and projects may explicitly configure Zone.js. Check the project’s configuration rather than inferring the mode from the version alone. See Angular’s versioned zoneless guide.

What to check Zone.js app Zoneless app
Common leads Timers, pending requests, repeated animation frames, and third-party asynchronous tasks. Repeated effects or signal changes, pending requests, and asynchronous work tracked by the app.
Stability signal ApplicationRef.isStable is available, but its observable runs outside Angular’s zone. Do not use NgZone stability observables as the app’s stability signal.
SSR work tracking Zone.js contributes task tracking. Use PendingTasks for work that must finish before SSR serialization.

These modes are not interchangeable troubleshooting strategies. Angular documents that NgZone.onMicrotaskEmpty, onUnstable, and onStable do not emit with zoneless change detection, and NgZone.isStable is always true there. For render timing in a zoneless app, Angular points to render hooks such as afterNextRender and afterEveryRender. See the zoneless guide and NgZone API.

How to find what is blocking stability

  1. Confirm the context. Check that hydration is enabled and that NG0506 appears in the browser during hydration. The warning is specifically scoped to that situation in Angular’s error reference.
  2. Enable temporary stability diagnostics. In development, add provideStabilityDebugging() to the app’s providers and inspect the task information it logs when stability takes longer than expected. Angular lists this API as stable since v21.1; check its API reference against your installed version.
  3. For Zone.js, inspect macrotask origins. Temporarily import zone.js/plugins/task-tracking to get more detail about macrotasks and their creation stacks. Use the stack information to trace recurring work or libraries back to their source. Angular cautions that these debugging utilities are not stripped from production bundles, so remove them when diagnosis is complete. The hydration guide documents this approach.
  4. Trace the task to its owner. Check initialization and bootstrapped components for timers, intervals, repeated requestAnimationFrame calls, unfinished requests, and third-party asynchronous work. In a zoneless app, also inspect effects for loops in which signal changes trigger further changes. Angular’s NG0506 reference lists these as potential causes; none is the diagnosis until you confirm it in your app.

Fix the cause that applies to your app

Zone.js: prevent unnecessary startup work from blocking stability

A recurring task started during initialization can keep the app from stabilizing. If it does not need to participate in Angular change detection, Angular recommends running that work outside Angular’s zone. This is a targeted fix: first establish that the task is responsible and that it does not need to trigger Angular change detection. See the NG0506 guidance.

If the task should begin only after startup has stabilized, wait for the first truthy emission of ApplicationRef.isStable, then start it. The observable runs outside Angular’s zone. In a Zone.js app, changing an ordinary component field in its subscription will not automatically refresh the view; re-enter the zone or explicitly trigger change detection when the resulting update needs to appear. Angular documents this behavior in the ApplicationRef API.

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

Zoneless: stop effect loops and track work that SSR must await

Inspect effects that change signals, especially when the changes can cause the same effect to run repeatedly. If asynchronous work must finish before SSR serializes the page, register it with Angular’s PendingTasks service. Its add() method returns a cleanup function; call that function when the work finishes, including on failure. The run() method tracks a promise-returning function, and Angular also documents pendingUntilEvent for observable work. See the zoneless guide.

Angular already accounts for some work, including router navigation and incomplete HttpClient requests. Do not add duplicate tracking without a reason. Use PendingTasks when the work is not already accounted for and SSR serialization genuinely must wait.

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

When can you ignore NG0506?

Angular says the warning may be ignored if the application is expected to stabilize later. That is not the same as confirming that hydration-related work completed as intended. If delayed stability is deliberate, verify hydration and post-hydration cleanup in the specific app, and confirm that the delay does not leave the page in an unacceptable state. If the delay is not intentional, use the diagnostics to identify and address the work holding stability open.

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.

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

Leave a Reply

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

Free tools Windows power users keep installed

One-click scans. No signup required.

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
PC Slower Than It Used to Be?Free scan - under a minute
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.