Fix 0x00000229: Too Many Active Profiling Objects
Stop or limit profiling tools like WPA, PerfMon, or ETW sessions. Quick reboot works; otherwise kill sessions manually or via registry.
What Triggers 0x00000229
You're running Windows Performance Recorder (WPR), PerfMon, or any Event Tracing for Windows (ETW) tool. You try to start a new trace — and Windows slaps you with 0x00000229 — ERROR_PROFILING_AT_LIMIT. It means you've hit the cap for active profiling objects. Happens a lot when you've left traces running overnight or stacked multiple diagnostic tools without closing them.
Real-world example: You're debugging a slow boot with WPR, forgot to stop the previous session, then tried starting a new one. Bam — 0x229. Or PerfMon data collector sets stuck in a running state after a crash.
Here's the fix path. Start with the fastest, stop when it works.
1. Simple Fix: Reboot (30 Seconds)
This clears all active profiling objects. Saved sessions, stuck ETW buffers, everything gone after a full restart.
- Close any open performance tools (WPR, PerfMon, Process Monitor, etc.).
- Click Start > Power > Restart.
- After Windows comes back, try starting your profiling tool again.
Expected outcome: The error should be gone. If the problem returns after a few hours or days, you've got a tool or service that's not releasing sessions. Jump to the moderate fix.
2. Moderate Fix: Kill Active ETW Sessions Manually (5 Minutes)
Reboot didn't stick? Or you can't reboot right now? You need to see what's running and kill it. ETW sessions are the usual culprit.
Step 2a: List All Active ETW Sessions
Open Command Prompt as Administrator. Run:
logman query -ets
What you'll see: A table of sessions — names like "NT Kernel Logger", "Circular Kernel Context Logger", or custom ones from WPR. Look for sessions with status Running. The default limit is 64 sessions total. If you're close to that, you get 0x229.
Step 2b: Stop the Unnecessary Ones
Stop each non-critical session. For example, if you see a WPR trace you forgot to stop:
logman stop "NT Kernel Logger" -ets
Do the same for any session you don't need. To stop all of them (aggressive, but effective):
for /f "skip=3 tokens=1" %a in ('logman query -ets') do logman stop %a -ets 2>nul
Wait — this will stop everything, including critical system loggers. Only do that if you're desperate. Safer to stop only the ones you recognize as leftover from earlier profiling.
Expected outcome: After stopping a few sessions, run your profiling tool again. The error should clear immediately. If it doesn't, check the count again — you may still be at the limit.
Step 2c: Check and Stop PerfMon Data Collector Sets
PerfMon also uses profiling objects. Open PerfMon, right-click Data Collector Sets > User Defined. Look for sets with a green arrow (running). Right-click and Stop each one.
Expected outcome: Stopping a few sets frees up slots. Retry your trace.
3. Advanced Fix: Raise the ETW Session Limit via Registry (15+ Minutes)
If you're constantly hitting the limit — maybe you're a developer running multiple ETW sessions daily — you can increase the cap. Windows defaults to 64 sessions max. You can bump it to 128 or 256.
Warning: This is a registry edit. One wrong move can mess up your system. Back up your registry first: File > Export > select All, save to desktop.
Step 3a: Open Registry Editor
Press Win + R, type regedit, press Enter. Click Yes when UAC asks.
Step 3b: Navigate to the ETW Settings Key
Go to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\WMI\Etw
If you don't see Etw key: Right-click WMI, choose New > Key, name it Etw.
Step 3c: Create or Modify the Session Limit
Inside the Etw key, right-click empty space, New > DWORD (32-bit) Value. Name it:
MaxSessions
Double-click it. Select Decimal. Enter:
- 128 — safe bump for most setups
- 256 — if you're really pushing it
Click OK.
Step 3d: Also Increase Logger Count (Optional but Recommended)
In the same Etw key, create another DWORD:
MaxLoggers
Set it to the same value as MaxSessions (e.g., 128 decimal). This controls the number of loggers, which is separate from sessions but related.
Step 3e: Reboot for the Change to Take Effect
Close Registry Editor. Restart your PC.
Expected outcome: After reboot, open Command Prompt and run logman query -ets. You should see the header Maximum of 128 (or whatever you set). The 0x229 error shouldn't pop up again unless you go beyond the new limit.
When to Skip the Registry Hack
If you're a regular user who hit this error once, just reboot. The registry change is overkill. Only do it if you're a developer, IT pro, or someone who runs multiple ETW sessions daily. Most users never need to touch it.
Still Getting the Error?
Check for third-party profiling tools: Wireshark, Razer Cortex, or even some antivirus software can eat up sessions. Try disabling them one by one. Also look for Windows Performance Recorder traces in %TEMP%\WPR* files — delete old ones.
If nothing works, run tracerpt -? to export logs and post them on a tech forum. But honestly, the three steps above fix 99% of cases.
Was this solution helpful?