Quick answer
Run regsvr32 /u then regsvr32 on the DLL listed in the error, or repair the Office/application installation. That fixes 90% of cases.
Why this happens
This error pops up when Windows tries to instantiate a COM class (think of it as a blueprint for a software object) but can't find the DLL that contains it. The registry entry points to a file that's either missing, unregistered, or mismatched. I've seen this countless times on small business PCs—often after a Windows update or a sloppy uninstall of another program yanks a shared DLL. Last month, a client's accounting software started throwing 0x800401F8 every time they tried to export to PDF. Turned out an Office update had overwritten a shared COM component, leaving the registry pointing to an old version.
How to fix it
- Identify the exact DLL – Check the full error message or the event log (Event Viewer > Windows Logs > Application). It usually names the missing DLL like
mso.dllorstdole32.tlb. If it doesn't, skip to step 3. - Re-register the DLL – Open Command Prompt as Administrator. Navigate to the folder containing the DLL or use the full path. Run these commands:
Replacecd /d C:\Windows\System32 regsvr32 /u mso.dll regsvr32 mso.dllmso.dllwith your actual DLL name. If you get an error saying the module was found but the entry point wasn't, that means the DLL is the wrong bitness (32-bit vs 64-bit). Try the same fromC:\Windows\SysWOW64instead. - Repair the application – If re-registering doesn't work, repair the program that's crashing. For Office: Control Panel > Programs > Microsoft Office > Change > Quick Repair. For other apps, look for a repair option in the installer. A quick repair takes five minutes and restores all missing COM components.
- Reinstall the application – If repair fails, uninstall and reinstall. This is the nuclear option but it works when the registry is severely mangled. Back up your data first—I've had clients lose their QuickBooks files because they skipped that.
- Check for stale registry entries – Use
regeditto search for the DLL name underHKEY_CLASSES_ROOT\CLSID. If you find references, note the GUID. Then look for that GUID underHKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSIDand see if theInprocServer32path points to a file that exists. If not, you can delete the broken key—but only if you're comfortable. Otherwise, run a registry cleaner like CCleaner (yes, it's okay in this specific case) to remove orphaned entries.
Alternative fixes if the main ones fail
If you're still stuck, try these less common but effective approaches:
- Run System File Checker – Corrupted system files can break COM registration. Open CMD as Admin and run
sfc /scannow. It takes 10-20 minutes but catches missing system DLLs. - Use Microsoft's Program Install and Uninstall Troubleshooter – This free tool fixes broken installations that block re-registration. Grab it from Microsoft's support site.
- Set the DLL's registry permission – Sometimes antivirus locks the registry key. Right-click the key in regedit, go to Permissions, and give
SYSTEMandAdministratorsfull control. But be careful—don't change permissions on anything you don't understand.
Prevention tip
The simplest way to avoid this is to not let third-party uninstallers go wild. When you remove software, use the official uninstaller. And if you're an IT admin, always create a system restore point before installing updates or large apps. I've saved my bacon more than once rolling back a bad patch that nuked a COM component. Also, keep Office and other apps up to date—Microsoft patches these registry issues in cumulative updates.