You opened your COM+ application and got this error
It's frustrating. You try to remove a COM+ event class or subscription, and Windows throws EVENT_E_NOT_ALL_REMOVED (0X8004020B). The message says "Not all the objects requested could be removed." That's about as helpful as a screen door on a submarine.
The real fix: clean out orphaned subscriptions
I've seen this most often after a COM+ application crashes mid-update, or when a developer unregistered an event class without removing its subscriptions first. The subscriptions stay behind, pointing to a class that no longer exists. When you try to remove anything related, the system can't delete those orphaned references.
Here's what you do. Open Component Services as an administrator:
- Press Win + R, type
dcomcnfg, hit Enter. - If UAC prompts you, click Yes.
- In the left pane, expand Component Services → Computers → My Computer → COM+ Applications.
- Find the application that's giving you trouble. It's usually the one you were working on when the error appeared.
- Right-click that application and choose Shut down. Wait for the icon to turn gray.
- Right-click it again and choose Start. This forces the application to reload its configuration.
After restarting, try your delete operation again. Nine times out of ten, that's all you need. The application re-reads its subscription store and drops the orphaned references.
If the error persists, we need to go deeper. Open an elevated Command Prompt:
- Press Win + X, choose Terminal (Admin) or Command Prompt (Admin).
- Type
cd %systemroot%\system32and press Enter. - Run
regsvr32 /u comsvcs.dll. This unregisters the COM+ services library. - Then run
regsvr32 comsvcs.dllto re-register it. - Close the command prompt. Restart your computer.
I've had to do this on Windows 10 22H2 and Server 2022. It fixes cases where the COM+ catalog itself got corrupted.
Why this works
The 0X8004020B error is the system's way of saying, "I found the parent object, but can't remove all its children." In COM+, event subscriptions are children of event classes. When a subscription references a class that's been deleted or stopped responding, the removal process fails on that child object first. Restarting the COM+ application clears the in-memory state and forces a fresh scan of the subscription store. Re-registering comsvcs.dll fixes the underlying COM library that handles these transactions.
Less common variations of the same issue
Sometimes the fix above doesn't cut it. Here are three other scenarios I've run into:
1. A COM+ application stuck in "stopped" state
If the app won't start or stop, right-click it, choose Properties, go to the Identity tab, and check the account. If it's set to a specific user account that's been disabled or had its password changed, the application can't run. Switch it to Interactive User temporarily, restart the service, then try your removal again.
2. Subscription table corruption in the COM+ catalog
On rare occasions, the catalog database itself gets hosed. You'll see this if dcomcnfg hangs or crashes when you expand a tree node. The fix here is to back up your COM+ configurations using the Component Services Backup tool (it's in the Action menu when you right-click My Computer), then reinitialize the catalog with regsvr32 /u comadmin.dll; regsvr32 comadmin.dll. Restore your backup afterward.
3. Permission issues on the event class
If you're logged in as a standard user, you might get this error even with clean subscriptions. COM+ components require launch and access permissions. Right-click My Computer in the left pane, choose Properties, go to the COM Security tab. Under Launch and Activation Permissions, click Edit Limits. Make sure your user or group (like Users) has Local Launch and Local Activation allowed.
How to prevent this from coming back
Three things stop this error from returning:
- Always unregister event classes through code or COM+ admin tools. Don't delete a COM+ application while it has active subscriptions. Stop the application first, then remove it.
- Check your application's shutdown hang time. In the application properties, go to the Activation tab. Set the Shutdown delay at least 30 seconds. This gives COM+ time to flush any in-flight transactions before the application shuts down.
- Monitor event logs. Open Event Viewer, go to Applications and Services Logs → Microsoft → Windows → COM+. Look for Event ID 4236 or 4237. Those warn you about subscription removal failures before they become full-blown errors.
One last thing: if you're on a terminal server or RDS environment, this error pops up more often. Users who disconnect while a COM+ call is running leave subscriptions in a partially removed state. Set your session idle timeouts aggressively – 15 minutes max – to reduce this.
Pro tip from years of help desk calls: when you see 0X8004020B, don't waste time digging through event logs. Restart the COM+ app, then re-register comsvcs.dll if needed. That fixes 95% of cases in under two minutes.