Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallAngular 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.
Recommended Free Tools
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.
#1 Best Overall
| 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
- 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.
- 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. - For Zone.js, inspect macrotask origins. Temporarily import
zone.js/plugins/task-trackingto 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. - Trace the task to its owner. Check initialization and bootstrapped components for timers, intervals, repeated
requestAnimationFramecalls, 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.
Rank #2
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.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →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.
Rank #3
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.
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.
Quick Recap
Rank #4
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.




