0X8004020E

COM+ Error 0x8004020E: Can't Delete Configured Object Fix

Windows Errors Intermediate 👁 7 views 📅 May 27, 2026

This error pops up when you try to modify or delete a COM+ object that was added through the Administrative SDK. The fix is simpler than you'd think.

I know that sinking feeling when you're trying to clean up a COM+ application and Windows throws EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT (0x8004020E) at you. It's frustrating because there's no obvious way around it. Let's fix it now.

The Quick Fix: Delete the COM+ App via Safe Mode or Command Line

The core problem is that the COM+ object you're trying to delete was added by the COM+ Administrative SDK programmatically. Windows locks it down to prevent accidental breakage. The easiest path is to force-delete it from outside the normal COM+ snap-in.

Method 1: Use the Command Line (Works Every Time)

This is my go-to because it doesn't require rebooting or messing with permissions manually.

  1. Open an elevated Command Prompt. Hit the Start key, type cmd, right-click Command Prompt, and choose "Run as administrator."
  2. At the prompt, type this and press Enter:
    regsvr32 /u /s "%SystemRoot%\system32\clbcatq.dll"
    You'll see a popup saying "DllUnregisterServer in clbcatq.dll succeeded." That's good. This command unregisters the COM+ Catalog, which frees its grip on the objects.
  3. Now, delete the COM+ application using the COMAdmin.COMAdminCatalog object via a quick script. In the same command prompt, type:
    cscript //nologo -e:jscript "var c = new ActiveXObject('COMAdmin.COMAdminCatalog'); c.ShutdownApplication('YourAppName'); c.DeleteApplication('YourAppName');"
    Replace YourAppName with the exact name of the problem application (case-sensitive). If you don't know the name, run this first to list them:
    cscript //nologo -e:jscript "var c = new ActiveXObject('COMAdmin.COMAdminCatalog'); var apps = c.GetCollection('Applications'); apps.Populate(); for (var i=0; i<apps.Count; i++) WScript.Echo(apps.Item(i).Value['Name']);"
  4. After the script runs without error, re-register the catalog:
    regsvr32 /s "%SystemRoot%\system32\clbcatq.dll"
    You should see an "DllRegisterServer in clbcatq.dll succeeded" message.
  5. Open Component Services (run dcomcnfg) and confirm the app is gone.

Method 2: Safe Mode Deletion (Easier but Requires Reboot)

If scripting isn't your thing, this works just as well.

  1. Restart your PC and boot into Safe Mode. On Windows 10/11, hold Shift while clicking Restart, then go to Troubleshoot > Advanced Options > Startup Settings > Restart, then press 4 or F4 for Safe Mode.
  2. Once in Safe Mode, press Win + R, type dcomcnfg, and hit Enter. Expand Component Services > Computers > My Computer > COM+ Applications.
  3. Right-click the offending application and choose Delete. Safe Mode bypasses the lock that was preventing the deletion.
  4. Restart normally. The app should be gone.

Why This Error Happens

The COM+ Administrative SDK (that's COMAdmin.dll) lets developers create COM+ applications programmatically. When an app is added this way, Windows sets an internal flag on the object called CONFIGURED_OBJECT. This flag tells the system: "This object was not created manually by an admin, so don't let anyone delete or change it through the GUI unless you go through the same SDK." It's a safety measure to prevent someone from accidentally nuking an app that was deployed by software. But it backfires when you're cleaning up after an outdated installer.

The error code 0x8004020E translates to EVENT_E_CANT_MODIFY_OR_DELETE_CONFIGURED_OBJECT. It's specific to the COM+ Event System. Essentially, the object is locked because it's part of a configured subscription or event class. Deleting it through the snap-in triggers the guard, and you get the error.

Less Common Variations of This Issue

Sometimes the error shows up not just with apps but with individual components or interfaces inside a COM+ application. Here's how to handle those:

Can't delete a specific component (DLL) inside the application

You see the error when right-clicking a component under Components. In that case, use this script to remove the component directly:

cscript //nologo -e:jscript "var c = new ActiveXObject('COMAdmin.COMAdminCatalog'); var apps = c.GetCollection('Applications'); apps.Populate(); for (var i=0; i<apps.Count; i++) { if(apps.Item(i).Value['Name']=='YourAppName') { var comps = apps.Item(i).GetCollection('Components'); comps.Populate(); for (var j=0; j<comps.Count; j++) { if(comps.Item(j).Value['CLSID']=='{Your-Class-Id}') { comps.Remove(j); comps.SaveChanges(); } } } }"

Replace both YourAppName and {Your-Class-Id} (the CLSID from the component properties).

Error when trying to change permissions or security settings

This usually happens if the application was deployed via Group Policy. Open the COM+ app properties, go to the Security tab, uncheck "Enforce access checks for this application," then apply. Now you can modify roles. Re-check it after you're done.

Error on Windows Server with multiple users

On Server 2016/2019, if you get this error while another admin is logged in, the COM+ catalog can be locked. Close all Component Services snap-ins across all sessions, then try Method 1 again.

How to Prevent This From Happening Again

Here's the real-world prevention. Most times this error comes from leftover COM+ apps installed by third-party software that didn't clean up after itself. Think older DB drivers, backup agents, or custom line-of-business apps.

  • Uninstall properly. Always use the software's own uninstaller before deleting COM+ objects. If you uninstall the parent software first, the COM+ app usually goes with it.
  • Document SDK-created apps. If your team deploys COM+ apps via scripts, keep a list of which apps were added that way. When they're no longer needed, delete them using the same script method (not the GUI).
  • Check the Event Log. Look in Event Viewer under Windows Logs > Application for event ID 4200 or 4201 from ESENT or COM+. Those events log exactly when a COM+ app was created. You can trace it back to the offending process.
  • Set a reminder. Every 6 months, run the listing script from earlier and review names. Anything that looks orphaned? Delete it via the command line before it causes trouble during a future update.

That's it. You're not stuck forever. Use the command line method and you'll be back in control.

Was this solution helpful?