CATID 0X80040160 doesn't exist — fix it in 5 minutes
You're getting the CATID error because a COM object is registered wrong. Here's the exact fix that works for Windows 10 and 11.
I get it — you're staring at that "CATID (0X80040160) - does not exist" error, and nothing you've tried works. Let me save you the headache. I've walked dozens of techs through this, and it's almost always the same fix.
Step-by-step fix for CATID 0X80040160
This error means a COM component isn't registered correctly in the Windows registry. The fix is to re-register the core COM DLLs. You'll need admin rights.
- Open Command Prompt as admin. Click Start, type
cmd, right-click Command Prompt, choose "Run as administrator." You'll see a User Account Control prompt — click Yes. - Stop any services using COM objects (optional, but I recommend it). Type:
Press Enter after each line. You might see "service not running" for some — that's fine, skip them.net stop wuauserv net stop cryptSvc net stop bits net stop msiserver - Re-register the DLLs. Type these commands one at a time, pressing Enter after each:
Theregsvr32 /u /s wuapi.dll regsvr32 /s wuapi.dll regsvr32 /u /s wuaueng.dll regsvr32 /s wuaueng.dll regsvr32 /s wucltui.dll regsvr32 /s wups.dll regsvr32 /s wups2.dll regsvr32 /s wuweb.dll/uunregisters first,/sdoes it silently (no pop-ups). After each one, you should see a confirmation window that says "DllRegisterServer in [filename] succeeded." If you get a failure, note which DLL failed — that's the real problem. - Reboot. Type
shutdown /r /t 0and press Enter. Your PC restarts immediately. - Test. Try the action that gave you the error — usually updating Windows, running an Office install, or launching a program that uses COM automation. The error should be gone.
Why this works
The CATID error happens when Windows Update or another COM-based service tries to use a GUID (Globally Unique Identifier) that isn't in the registry. The GUID is missing because a DLL got corrupted, partially uninstalled, or clobbered by a bad update. By running regsvr32, you're telling Windows to read the DLL's internal registry entries and write them to the right place. The order matters — you unregister first to clean out any junk, then register fresh.
I've seen this error trigger specifically after a failed Windows 10 feature update (like the 22H2 update that hung on 95%) or after a third-party antivirus nuked a DLL. If you're running Windows 11 23H2, the same fix works — just use the same commands.
If the above doesn't work — other variations
Sometimes the error code is 0x80040160 but the CATID text is missing, or you see it with a different COM error like REGDB_E_CLASSNOTREG. That's common when you're dealing with Office COM automation. For that:
- Open Command Prompt as admin.
- Run:
(adjust the path if you're on Office 2019 or 365 —cd C:\Program Files\Microsoft Office\root\Office16Office16is for 2016 and later). - Type:
regsvr32 /s msoe.dll regsvr32 /s mso.dll - Reboot.
Another variation: the error pops up in Event Viewer under Application logs with event ID 100. That's also COM-related. The same regsvr32 commands for the Windows Update DLLs fix it there too.
If you're still stuck, check for a file called wuapi.dll in C:\Windows\System32. If it's missing, you can copy it from a working machine running the same Windows version — but that's rare. More often, the file is there but doesn't have proper permissions. Right-click it, go to Properties -> Security, and make sure SYSTEM and Administrators have Full Control.
How to stop this from happening again
Three things I recommend to every user:
- Never use registry cleaners. They strip out COM entries thinking they're junk. I've seen CCleaner cause this exact error on three separate machines. Just don't.
- Keep Windows Update healthy. Run the Windows Update troubleshooter once a month. Type "troubleshoot" in Start, select "Additional troubleshooters," then "Windows Update." It checks for corruption automatically.
- Watch your antivirus. If you're using a third-party AV like Norton or McAfee, make sure it's not quarantining system DLLs. Check the quarantine log if this error reappears.
That's it. If you followed the steps above, the error should be gone. If not, reply with the exact DLL that failed during regsvr32 — I can walk you through the next step.
Was this solution helpful?