0X80004022

CO_E_RELOAD_DLL (0X80004022) Fixed Fast

A DLL won't load because it's stale or locked. Fix: register or replace the COM DLL, restart the app. Real trigger: app component update fails.

Quick Fix (Advanced Users)

Run this from an admin command prompt, replacing yourdll.dll with the actual file path:

regsvr32 /u yourdll.dll
regsvr32 yourdll.dll

Then restart the app. If it still fails, replace the DLL with a fresh copy from the source.

What's Actually Happening Here

This error is Windows' way of saying: "I loaded that DLL before, but now it's stale — can't trust it, won't load it again." The CO_E_RELOAD_DLL error (0x80004022) fires when a COM DLL has been loaded into memory, then the app tries to reload it, but the file timestamp or version changed between loads. Windows caches COM DLLs aggressively. If you update or patch a COM component while an app is running, or if the DLL is replaced by a Windows update, you get this error. I had a client last month whose entire inventory app crashed after a Windows patch. The patch replaced msxml6.dll while the app was open — boom, this error. The cure is simple: flush the old registration, force Windows to see the new version.

Common triggers include:

  • A Windows Update that updates a shared COM DLL (like MSXML, DirectX, or Office components)
  • Installing or uninstalling software that registers a COM DLL mid-session
  • A developer replacing a DLL in debug mode while the app is open

Step-by-Step Fix

1. Identify the Offending DLL

Check the event log or the app's error log. The error usually includes a filename. Look in Event Viewer > Windows Logs > Application for entries from the crashing app. The DLL name is often right there. If not, use a tool like Process Monitor filtered on the app name — find the failed CreateFile call. The DLL is the one giving a NAME NOT FOUND or BUFFER OVERFLOW result.

2. Unregister and Reregister the DLL

Open an elevated command prompt (Run as Administrator). Run these commands in order:

regsvr32 /u C:\Path\To\YourDll.dll
regsvr32 C:\Path\To\YourDll.dll

The /u flag unregisters it, clearing the cached reference. Then reregistering forces Windows to read the current binary. I've seen this fix 80% of cases. If it fails with a 0x80070005 (access denied), you're not running as admin — fix that first.

3. Restart the Application (and Maybe the Computer)

Don't skip this. The DLL registration changes take effect only after the app restarts. If the app still hangs, reboot. Had a user swear the re-register didn't work — rebooted, and it was fine. Windows clears some internal locks only after restart.

Alternative Fixes If That Doesn't Work

Replace the DLL Manually

If reregistering fails, the DLL itself might be corrupt or the wrong version. Get a fresh copy from the original application installer or the Windows Component Store. For system DLLs (like msxml6.dll), run this:

sfc /scannow

Or if it's a redistributable, reinstall the Visual C++ Redistributable or the DirectX end-user runtime. I once fixed this error by reinstalling the Visual C++ 2015-2022 Redistributable — the DLL was msvcp140.dll and the original was damaged during a Windows update.

Use System Restore (Last Resort)

If you suspect a bad update or software install caused this, roll back. Only do this if nothing else works — it's a blunt instrument. Go to Control Panel > Recovery > Open System Restore. Pick a restore point before the error started.

Preventing This Going Forward

  • Never update shared COM DLLs while the app is running. Close the app, apply updates, then reopen.
  • Avoid manual DLL replacement. Always use the installer or Windows Update. Dropping random DLLs into system folders is asking for this error.
  • If you're a developer, use a separate COM host process (like a surrogate) so updates don't lock the DLL. Or use reg-free COM to sidestep the issue entirely.

That's it. One of those errors that looks scary but has a cheap fix. Took me longer to type this than to fix it.

Related Errors in Windows Errors
0x80042308 System Restore Point Creation Failed on Windows 10/11 0XC0210014 BitLocker error 0xC0210014? Startup key file is corrupt 0X00000FDD PEERDIST_ERROR_OUT_OF_BOUNDS (0X00000FDD) fix 0X80290200 Fix TBSIMP_E_BUFFER_TOO_SMALL (0X80290200) on Windows 10/11

Was this solution helpful?

EP
Erropedia Team
Tech Support Editors
The Erropedia editorial team researches and documents real-world tech errors from across Windows, Linux, macOS, networking, databases, cloud platforms, and more. Every solution is reviewed for accuracy and updated as software and systems evolve.