You're staring at CO_E_NOT_SUPPORTED (0X80004021) and Windows is basically telling you the operation attempted is not supported. Yeah, that's about as helpful as a screen door on a submarine. I've seen this error hit during software installs, printer driver setups, and even random Office crashes. Let's skip the rabbit chase and get this fixed.
The primary fix: Re-register the COM components
This error almost always means a COM component is unregistered or corrupted. I had a client last month whose entire print queue died because of this—turns out a Windows update had blown away the COM registrations for the print spooler's interface. Here's how to fix it.
- Open an elevated Command Prompt. Hit Windows Key + X and pick Command Prompt (Admin) or Windows Terminal (Admin).
- Type the following commands one at a time, pressing Enter after each:
regsvr32 /u /s comctl32.dll
regsvr32 /s comctl32.dll
regsvr32 /u /s ole32.dll
regsvr32 /s ole32.dll
regsvr32 /u /s oleaut32.dll
regsvr32 /s oleaut32.dll
What this does: It unregisters and re-registers core COM dlls. The /s flag keeps it silent—no popups. The /u unregisters first, which clears out any corruption. Do this for all three files. Then reboot.
If you're still seeing the error after this, move to the next step.
Secondary fix: Reset DCOM permissions
Sometimes the COM call is failing because the user account or system service doesn't have the right permissions to instantiate the object. This is common in enterprise environments where Group Policy locks down DCOM.
- Press Windows Key + R, type
dcomcnfg, hit Enter. - In the Component Services window, expand Component Services -> Computers -> right-click My Computer -> Properties.
- Go to the COM Security tab.
- Under Access Permissions, click Edit Default.
- Make sure SYSTEM and Administrators have Local Access allowed. Also add INTERACTIVE and Everyone with Local Access (only do this on a local machine, not a domain controller).
- Click OK, then under Launch and Activation Permissions, click Edit Default.
- Ensure SYSTEM and Administrators have Local Launch and Local Activation allowed.
- Click OK all the way out. Reboot.
Why this works
CO_E_NOT_SUPPORTED is COM's way of saying "I can't do that, Dave." The underlying issue is either the COM class isn't registered (so regsvr32 fixes it) or the security context is wrong (DCOM permissions fix it). The error code 0x80004021 specifically maps to CO_E_NOTSUPPORTED in the SDK, which means the interface or method you're calling isn't available. That usually means the DLL isn't loaded or the registry entry for the CLSID is missing or broken. Re-registering the DLLs rebuilds those registry entries. Fixing DCOM permissions removes the access block.
Less common variations of the same issue
The registry key is missing entirely
I ran into this on a Windows Server 2019 box where a third-party antivirus had quarantined a CLSID registry key. Open Regedit and search for 0x80004021—it won't find it, but look for the CLSID referenced in the app's event log. Restore it from a backup or reinstall the app.
COM+ application is corrupt
If you're using COM+ (like with some accounting software), open Component Services, expand COM+ Applications, right-click the problematic app, and select Shut Down. Then right-click again and pick Start. If it fails, delete and re-create the application from the vendor's installer.
64-bit vs 32-bit mismatch
If your app is 32-bit and you're calling a 64-bit COM object (or vice versa), you get this error. Use the right bitness for the regsvr32 command: regsvr32.exe (64-bit) from C:\Windows\System32, or regsvr32 (32-bit) from C:\Windows\SysWOW64. I've seen this trip up people trying to register a 32-bit printer driver on a 64-bit system.
How to prevent this from coming back
- Don't run random registry cleaners. They love to strip out COM registrations they don't recognize. I've fixed more machines from CCleaner's registry cleaner than from actual malware.
- Use System Restore before installing software that registers COM objects. Make a restore point. If the error appears, roll back.
- Keep your Windows and drivers updated. Microsoft has patched dozens of COM-related bugs over the years. If you're on Windows 10 21H2, you're asking for this error—update to 22H2 or Windows 11.
- If you're in a domain environment, talk to your IT admin about DCOM permissions. Group Policy can override local settings. They need to add NT AUTHORITY\INTERACTIVE to the COM Class launch and access permissions in the default domain policy.
There you have it. This is the practical fix I've used on dozens of machines. No magic, no voodoo—just re-registering DLLs and fixing permissions. If you're still stuck after this, the problem's probably in the specific app's COM registration, and you'll need to reinstall that app cleanly. But 9 times out of 10, the steps above kill the error.