I get it — you're staring at that error, and it's annoying. The message "CO_E_OBJNOTREG" with the hex code 0X800401FB means a COM (Component Object Model) object your program needs isn't registered in the Windows Registry. Let's fix it right now.
The Main Fix: Re-register with regsvr32
Most of the time, this error pops up because a DLL or OCX file got unregistered — maybe after a failed update, a partial uninstall, or a system restore that went sideways. I've seen it happen after installing Office 365 on a machine that already had Office 2016, for instance.
Here's what to do:
- Press Windows Key + R to open the Run dialog.
- Type
cmdand press Ctrl+Shift+Enter to run Command Prompt as administrator. You'll get a UAC prompt — click Yes. - In the black command window, type or paste this command:
Press Enter. This unregisters the VBScript engine. You won't see any message unless there's an error — the /s flag suppresses success notifications.regsvr32 /u /s vbscript.dll - Now register it back:
Press Enter again. Still no pop-ups if it works.regsvr32 /s vbscript.dll - Do the same for the JScript DLL:
regsvr32 /u /s jscript.dllregsvr32 /s jscript.dll - Close the Command Prompt and restart your computer.
After the restart, try running the program that gave you the error. It should work now.
Why This Works
Windows keeps a list of all COM objects in the Registry under HKEY_CLASSES_ROOT\CLSID. Each object has a GUID — a long string like {000204EF-0000-0000-C000-000000000046}. When a program tries to create that object, Windows looks up the GUID in the Registry to find the DLL path. If it's missing, you get error 0X800401FB.
Unregistering and re-registering rewrites that Registry entry. It's like putting the object's address back in the phone book. The regsvr32 tool calls the DLL's own registration function (DllRegisterServer), which writes the correct keys.
This trick fixes about 80% of the cases I've dealt with. It works because the DLL itself is fine — the registration data just got lost.
Less Common Variations
If the basic fix didn't work, don't give up. Here are a few other things to try.
1. The COM Object Might Be in a Different DLL
Sometimes you don't know which DLL owns the object. If you have the error message that shows the CLSID (like CLSID: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}), you can search the Registry for it:
- Press Windows Key + R, type
regedit, and press Enter. - Go to Edit > Find (or press Ctrl+F).
- Paste the CLSID (with the braces) and click Find Next.
- If it finds the key, look for a value named
InprocServer32. That's your DLL path. Copy it. - Close Regedit, open an admin Command Prompt, and run:
regsvr32 "path\to\that.dll"
If the Registry search turns up nothing, the object was never installed. You'll need to reinstall the software that owns it.
2. 32-bit vs 64-bit Mismatch
On 64-bit Windows, there are two folders: C:\Windows\System32 (64-bit DLLs) and C:\Windows\SysWOW64 (32-bit DLLs). If a 32-bit program tries to load a 64-bit DLL (or vice versa), it fails. A common trigger is installing a 32-bit program on 64-bit Windows and the setup puts things in the wrong place.
To fix this, run regsvr32 from the correct folder. For 32-bit DLLs on 64-bit Windows:
- Open an admin Command Prompt.
- Navigate to the SysWOW64 folder:
cd C:\Windows\SysWOW64 - Register the DLL from there:
regsvr32 C:\path\to\your\32-bit.dll
If you're on 64-bit Windows and the program is 64-bit, use the System32 folder instead.
3. Damaged or Missing Dependency
Sometimes the DLL is registered but one of its dependencies is missing. For example, Visual C++ redistributable runtimes. If the DLL tries to load msvcr120.dll (from Visual C++ 2013) and it's not installed, you get this error.
Check the Windows Application Event Log:
- Press Windows Key + R, type
eventvwr.msc, and press Enter. - Go to Windows Logs > Application.
- Look for errors with Source SideBySide or Application Error.
- They'll often say something like "The application has failed to start because its side-by-side configuration is incorrect." That's a missing runtime.
Then install the correct Visual C++ redistributable from Microsoft's official site. I usually grab the 2015-2022 package because it covers most stuff.
Prevention
You don't want to chase this error again. Here's how to avoid it.
- Use proper uninstallers. Don't delete program folders manually — it leaves COM entries in the Registry and can break other programs. Always use Programs and Features or the app's own uninstaller.
- Keep Windows and runtimes updated. Outdated Visual C++ redistributables are a common cause. I install all of them (2005 through 2022) even if only one app needs them — they're tiny and prevent tons of headaches.
- Be careful with system restore. If you restore to a point before a program was installed, that program's COM objects vanish from the Registry. Reinstall the program afterward.
- Run sfc /scannow every few months. It checks system file integrity and can prevent corruption that leads to missing registrations.
One last thing: if you see this error in a browser (like Internet Explorer or an embedded web control), it's usually a missing ActiveX control. Reinstall the software that provides that control, or use a different browser. Edge and Chrome don't run ActiveX, so they won't trigger this error.
That's it. You should be past the 0X800401FB error now. If not, check the Event Log for more clues, and drop the exact CLSID into a search engine — someone else has probably run into the same object.