Fix COMADMIN_E_CLSIDORIIDMISMATCH (0X80110418) Fast
This error means a COM+ app's CLSID or IID doesn't match its DLL. Here's the real fix: re-register the DLL and re-import the component.
I know that 0X80110418 error is a pain — it stops COM+ applications cold, and the message about CLSIDs and IIDs not matching the DLL doesn't exactly tell you what to do. Let's fix it now.
The Quick Fix: Re-register and Re-import
- Open Component Services — Hit
Win + R, typedcomcnfg, press Enter. That opens the Component Services snap-in. - In the left pane, expand Component Services > Computers > My Computer > COM+ Applications.
- Find your problematic application (the one throwing the error). Right-click it and choose Shut down. If it's already stopped, skip this step.
- Now the key step: Right-click the application again and select Export. Save the application file (an .MSI file) to your desktop. Call it something like
MyAppBackup.msi. - Right-click the same application and choose Delete. Confirm the deletion.
- Open an Administrator Command Prompt: right-click Start, choose Command Prompt (Admin) or Terminal (Admin).
- Re-register the DLL that hosts the COM+ components. Run this command, replacing the path with your DLL's actual location:
Wait for the DllUnregisterServer succeeded message.regsvr32 /u "C:\Path\To\Your\Component.dll" - Now register it fresh:
You should see DllRegisterServer succeeded.regsvr32 "C:\Path\To\Your\Component.dll" - Go back to Component Services. Right-click COM+ Applications and choose New > Application.
- Select Install pre-built application, browse to your exported .MSI file, and import it.
- After import, right-click the application and click Start. The error should be gone.
After doing this, the CLSID and IID will match again because the registry has fresh entries from the re-registered DLL. The exported .MSI carries the correct component IDs.
Why This Happened
The COM+ catalog stores a snapshot of every component's CLSID and IID. If you update the DLL — say, from a patch or a manual copy — the new DLL might have different GUIDs. Or the old DLL might have been unregistered and replaced. The COM+ catalog still points to the old GUIDs. So when the application tries to instantiate a component, it asks for a CLSID that doesn't exist in the current DLL. That's 0X80110418.
Re-registering the DLL writes the new GUIDs into the registry. Exporting and re-importing the application forces the COM+ catalog to read those new GUIDs. End of mismatch.
Less Common Variations of This Issue
Multiple DLLs in the Same Application
If your COM+ app contains components from several DLLs, one might have been updated while others weren't. You'll need to re-register all the DLLs involved. Check the application's Components folder in Component Services — each component shows its DLL path. Re-register each one.
Corrupted COM+ Catalog
Sometimes the catalog itself gets corrupted. You can rebuild it without losing everything. Backup your applications first (export each one). Then in an Admin Command Prompt, run:
regsvr32 /u comsvcs.dll
Then:
regsvr32 comsvcs.dll
After that, re-import your exported applications one by one. This rewrites the catalog from scratch.
Permission Problems
If re-registration fails with access denied, you're not running the command as Administrator. That's the usual culprit. Another possibility: the DLL is locked by a running service. Reboot the machine, then run the steps again immediately after login — before any service that uses the DLL starts.
32-bit vs 64-bit Mismatch
If the COM+ application is set to run as a 32-bit process but the DLL is 64-bit (or vice versa), you'll get this error. Check the application's properties: under the Activation tab, look for the Application Root Directory. The bitness of that directory's system folder must match the DLL. Use regsvr32 from the correct SysWOW64 folder for 32-bit DLLs on a 64-bit system:
C:\Windows\SysWOW64\regsvr32 "C:\Path\To\32Bit.dll"
Preventing This Going Forward
Three things keep this error from coming back:
- Always use the COM+ export/import process when updating DLLs. Don't just copy a new DLL over the old one. Export the app, replace the DLL, re-register it, then delete and re-import the app. That's the only way the catalog stays in sync.
- Keep a backup of each COM+ application's export file. Store the .MSI somewhere safe. If the catalog gets wiped during a system restore or a bad patch, you can re-import in minutes.
- If you're deploying via Group Policy or SCCM, include the
regsvr32command and a COM+ export/import step in your script. Don't assume the new DLL will magically match the catalog.
That's it. Do those steps and this error won't bother you again.
Was this solution helpful?