Cause 1: Corrupt or Cross-Registered DLL
Nine times out of ten, 0x80029C84 is a DLL that's registered twice or registered against the wrong version of itself. I've seen this happen most often after installing a legacy VB6 app on Windows 10 or 11, or after a botched Office update. The COM type library loader hits a circular reference — Type A points to DLL B, which points back to Type A, and the whole thing deadlocks.
Fix: Unregister and Re-register the DLL
Open an elevated Command Prompt (right-click, Run as Administrator). Run these commands one at a time:
regsvr32 /u "C:\Path\To\Problematic.dll"
regsvr32 "C:\Path\To\Problematic.dll"
If you don't know which DLL is the culprit, check the Event Viewer. Look under Windows Logs > Application for error entries with source "Windows Error Reporting" or "SideBySide". The faulting module path is usually listed there. If that's empty, use ProcMon from Sysinternals — filter by the TypeLib registry key and look for failed loads. Blunt tool, but it works.
I've also fixed this by simply unregistering every .tlb file in the app's install folder and re-registering them all. Old VB6 apps are notorious for this. Do this:
for %i in ("C:\Program Files (x86)\YourApp\*.tlb") do regsvr32 /u "%i"
for %i in ("C:\Program Files (x86)\YourApp\*.tlb") do regsvr32 "%i"
Run those from an admin prompt. If the error goes away, you nailed it.
Cause 2: Multiple Copies of the Same Type Library
Sometimes a leftover DLL from an old install sits in C:\Windows\System32 while the newer version is in C:\Program Files. Windows loads the first one it finds, and if they have different type library GUIDs or version numbers, you get a circular dependency. The system can't resolve which version to use.
Fix: Remove the Duplicate
Search your system for the DLL by name. Use where /r C:\ in a command prompt:
where /r C:\ YourProblematic.dll
If you see two or more copies, the one in System32 or SysWOW64 is usually the troublemaker. Unregister it:
regsvr32 /u "C:\Windows\SysWOW64\YourProblematic.dll"
Then delete it (after making a backup). Re-register the version in the app's install folder. Restart the app. This has fixed the error for me on at least a dozen machines, especially with old Sage or QuickBooks integrations.
Cause 3: Broken Component Services Cleanup
If the two fixes above didn't work, the problem is deeper — a dead COM+ application or orphaned type library reference in the registry. This is rarer but happens after failed uninstalls or when you kill a process mid-registration.
Fix: Use Component Services to Delete Orphans
- Open Component Services (run
dcomcnfg). - Expand Component Services > Computers > My Computer > COM+ Applications.
- Look for apps with a yellow warning icon or blank names — these are dead.
- Right-click and delete them.
Then clean the registry manually. Back up first. Open regedit and navigate to:
HKEY_CLASSES_ROOT\TypeLib
Look for GUIDs that point to DLLs that don't exist anymore. The win32 or win64 key under each GUID shows the path. If the path is empty or points to a deleted file, delete that whole GUID key. Be surgical — don't go deleting everything. I've seen this clear up circular type errors after an Office 2010 to 2016 migration that went sideways.
If you're nervous about registry edits, use Registry Editor's Find to search for the erroring DLL name. Delete only the keys that reference it.
Quick-Reference Summary Table
| Cause | Symptoms | Fix | Time |
|---|---|---|---|
| Corrupt DLL registration | Error on app start, Event Viewer shows module path | Unregister/re-register DLL | 5 min |
| Duplicate type library | Multiple copies of same DLL on disk | Remove duplicate, keep correct one | 10 min |
| Broken COM+ app or orphaned registry | Error after failed uninstall, yellow icons in Component Services | Delete dead COM+ apps, clean orphaned TypeLib keys | 15 min |
That's it. Start with the first fix — it works most of the time. Don't bother reinstalling the whole app until you've tried these. And always run sfc /scannow after any registry surgery to make sure you didn't break something else.