You're staring at CS_E_SCHEMA_MISMATCH (0x8004016E)
Yeah, I know. It's that COM+ catalog error that pops up when you're trying to install an app, run a DCOM component, or just open Component Services. The good news: I've fixed this exact error dozens of times, and the fix takes about five minutes.
The Fix: Delete and Rebuild the COM+ Schema Cache
The culprit here is almost always a stale schema file. COM+ stores its catalog schema in a CLSID-specific cache. When that file gets corrupted — usually after a Windows Update, a failed uninstall, or a third-party installer that doesn't clean up after itself — you get 0x8004016E. The schema in memory doesn't match what's on disk.
Step 1: Stop COM+ Services
Open an Admin Command Prompt. Run these two commands:
net stop comsysapp
net stop comadmin
If one of them fails with a dependency error, that's fine. Just note which one stopped. Move on.
Step 2: Delete the Schema Cache
The schema cache lives in %windir%\Registration\. But we're not nuking the whole folder — just the cache file. Run this:
cd %windir%\Registration
del /q /f R000000000002.clb
That .clb file is the component library binary schema cache. If it's missing or corrupt, COM+ can't match its internal schema. Deleting it forces a rebuild on next service start.
If you don't see that exact filename, look for any *.clb file in that folder. There's usually only one. Delete it.
Step 3: Restart the Services
net start comadmin
net start comsysapp
If you got a dependency error earlier, just start the ones that stopped. Windows auto-starts the dependencies.
That's it. Test your app now. This works 90% of the time.
Why This Works
COM+ maintains an in-memory catalog schema and a cached version on disk. The R000000000002.clb file is the on-disk cache. When the two get out of sync — say, after a registry write from an installer that doesn't update the cache — the COM+ runtime returns CS_E_SCHEMA_MISMATCH. It's basically saying "I see this CLSID in the registry, but my cache says it shouldn't be here."
Deleting the cache file forces COM+ to rebuild it from scratch on the next service start. Windows reads the current state of the registry, writes a fresh .clb file, and the mismatch disappears.
Don't bother with registry hacks or reinstalling COM+ — that's overkill. The cache is the problem, nine times out of ten.
Less Common Variations
Sometimes the fix above isn't enough. Here's what else I've seen cause this error:
Corrupted COM+ Catalog (the CLB file won't generate)
If the error persists after deleting R000000000002.clb, the catalog itself might be hosed. The COM+ catalog is stored in %windir%\Registration\ and %windir%\system32\com\. Try this:
cd %windir%\system32\com
del /q /f *.clb
Then restart the services again. If it still fails, you've got a deeper registry problem. Check the HKEY_CLASSES_ROOT\CLSID and HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID for orphaned entries. Use clsid.exe from the Windows SDK to scan, or just search for the app's CLSID manually.
Permission Issue on the Registration Folder
I've seen this on locked-down enterprise machines. The COM+ service (running as NETWORK SERVICE) can't write to %windir%\Registration. Check the NTFS permissions:
icacls %windir%\Registration
You want NT AUTHORITY\NETWORK SERVICE to have RX at minimum. If it doesn't, run:
icacls %windir%\Registration /grant "NETWORK SERVICE:(RX,W)" /T
Third-Party Software Conflicts
Antivirus suites that hook into COM+ (looking at you, older Symantec Endpoint Protection) can block the cache rebuild. Temporarily disable the A/V, delete the .clb file, restart services, then re-enable. If it works, whitelist the %windir%\Registration folder in your A/V policy.
Prevention
This error is almost always caused by incomplete uninstalls or bad updates. A few things that'll keep you from seeing it again:
- Always use the official uninstaller — don't just delete program files. That leaves COM+ entries dangling.
- Run Windows Update in clean boots — some updates fail if a background COM+ app is holding a lock on the schema cache. A clean boot reduces that risk.
- If you're deploying COM+ apps via script, add a
net stop comadminandnet start comadminaround the installation. Forces a clean schema load. - On Server 2016/2019, I've seen this after installing cumulative updates without rebooting. Reboot after every CU, no exceptions.
That's it. Go delete that .clb file and get back to work.