Fix TYPE_E_INVDATAREAD (0x80028018) – Invalid Type Library
This error means a COM type library is corrupted or mismatched. Almost always a registry problem after an install or uninstall.
Quick answer for pros: Delete the corrupted .tlb file from the registry under HKEY_CLASSES_ROOT\TypeLib, then re-register the app with regsvr32 or reinstall it.
What the hell is TYPE_E_INVDATAREAD?
You're seeing error 0x80028018 (TYPE_E_INVDATAREAD) because Windows can't parse a type library file. This usually happens when a registered COM component has a .tlb file that's been corrupted, truncated, or points to an old format. I've seen this most often after uninstalling an Office add-in or a Visual Studio extension — the uninstaller leaves a dead registry entry behind.
The culprit here is almost always a bad registry reference. Windows tries to load the type library, reads garbage, and throws this error. It's not a virus. It's not a driver issue. Don't bother with SFC or DISM — they rarely fix this.
Step-by-step fix
- Identify the offending type library. When the error pops up, note the application or DLL that triggered it. If you can't tell, check the Application Event Log (Event Viewer > Windows Logs > Application) for the source module.
- Open Regedit as admin. Press Win+R, type
regedit, hit Enter, then click Yes on the UAC prompt. - Navigate to the TypeLib key.
HKEY_CLASSES_ROOT\TypeLib
This key contains all registered type libraries. Each subkey is a GUID. - Find the bad one. Look for the GUID related to the app you identified. If you're not sure, export the whole TypeLib key as a backup, then systematically unload problem apps. A quick way: search for the .tlb filename in the registry under that key.
- Delete the offending GUID subkey. Right-click it, choose Delete, and confirm. This removes the dead registration.
- Re-register the component. Open an elevated Command Prompt (Run as admin). Run:
regsvr32 /u path\to\component.dll
Then:
regsvr32 path\to\component.dll
If you don't know the DLL, reinstall the application entirely. - Reboot. Yes, still necessary. Force a restart.
Alternative fixes if that doesn't work
- Use Microsoft's Type Library Browser. Download
Oleview.exefrom the Windows SDK. It shows registered type libraries and lets you manually delete orphaned ones. - Reset COM settings. In an elevated command prompt, run:
regsvr32 /i shell32.dll
Then reboot. This re-registers core COM infrastructure. - System Restore. If the error started after a recent install, roll back to a restore point before that install. Not elegant, but effective.
- Third-party registry cleaner. I hate suggesting this, but CCleaner's registry cleaner can find orphaned type library entries. Use it with caution — always create a backup first.
Prevention tip
Never uninstall software that registered COM objects by just deleting its folder. Always use the official uninstaller or msiexec /x for MSI installs. Otherwise you'll leave dead type library references that cause errors like 0x80028018 months later when some other app tries to load them.
If you're a developer, always call UnRegisterTypeLib in your uninstaller. Not doing that is just lazy.
Was this solution helpful?