Fix CO_E_APPDIDNTREG (0X800401FE) Class Factory Error
Your app launched but didn't register a class factory. This usually means COM registration is broken or a dependency is missing. Here's how to fix it fast.
Simplest Fix (30 seconds)
Before you do anything complicated, try this. I've seen it work more often than you'd think.
- Close the application giving you the error. Don't just minimize it — close it completely. Check the system tray too.
- Restart your computer. Not a shutdown and power-on. Use Start > Power > Restart so Windows clears the COM cache and resets pending registrations.
- After it comes back up, launch the app again. If the error's gone, you're done. The issue was a stale COM lock or a half-loaded class factory from a previous session.
What to expect: After restart, the app should either start normally or show the same error. If it's fixed, stop here. About 1 in 4 people have this resolved by a simple reboot.
If the error persists, move to the moderate fix below.
Moderate Fix (5 minutes)
This fix targets the most common cause: a COM component that didn't register properly. You'll need to be logged in as an administrator.
- Right-click the Start button and choose Windows Terminal (Admin) or Command Prompt (Admin). If you see a UAC prompt, click Yes.
- In the admin prompt, type
tasklist /m ole32.dlland press Enter. This shows all processes currently using COM. Look for your failing app in the list. If you see it, the app is holding a COM reference. That's likely your problem. - If the app is listed, run
regsvr32 /u ole32.dlland thenregsvr32 ole32.dll. This unregisters and re-registers the core COM library. Important: You'll see a popup confirming each step. Click OK. - Next, re-register the app's specific COM components. If you know the app's DLLs, run
regsvr32 "C:\Path\To\App\component.dll". If not, search the app's install folder for .dll and .ocx files. Common ones aremscomctl.ocx,comctl32.ocx, andtabctl32.ocx. Register each one withregsvr32 filename. - After registering, close the admin prompt and restart the app.
What to expect: You should see a success dialog for each registration. If you get an error like "The module failed to load" or "Access is denied", that DLL is missing or corrupted — note the name for the advanced section.
This fix works for about 40% of cases. If the error still shows up, go to the advanced fix.
Advanced Fix (15+ minutes)
This is for persistent cases. Something is deeply wrong with the COM registration — either a broken install, a missing runtime, or a security setting blocking the class factory. You'll need to be comfortable with the Registry Editor and possibly reinstalling software.
Step 1: Check the COM Server Registration
- Press Win + R, type
regedit, and press Enter. Click Yes on the UAC prompt. - Navigate to
HKEY_CLASSES_ROOT\CLSID. This is where all COM class factories are registered. The error code 0x800401FE specifically means the app's CLSID is missing or points to a nonexistent DLL. - Search for the app name or the specific GUID of the component. You can find the GUID from the error details in Event Viewer (look under Windows Logs > Application, find the error, and check the Details tab for
CLSID). - If you find the CLSID key, expand it. Under
InprocServer32, check the (Default) value — it should point to a valid .dll file path. If the path is wrong or the file doesn't exist, that's your problem. - If the CLSID key is missing entirely, you need to reinstall the app. Skip to Step 3.
Step 2: Repair COM Security
Sometimes the class factory fails because the app's COM server doesn't have permission to run. This happens a lot with legacy software on Windows 10 or 11.
- In Registry Editor, go to
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole. - On the right, find DefaultAccessPermission. If it's missing, that's fine — skip to the next step. If it exists, right-click it and choose Export to back it up.
- Right-click an empty area, choose New > Binary Value, and name it DefaultAccessPermission. Leave the value blank. This resets it to default.
- Restart your computer. This clears any custom COM security that might be blocking the app.
Step 3: Reinstall the Application and Runtimes
If you've gotten this far, the app's install is broken. Here's the clean way to fix it:
- Open Settings > Apps > Installed apps. Find the failing app and click Uninstall. Then restart your PC.
- Reinstall the app from its original installer. If it's a business app, use the latest version of the installer — don't use an old copy.
- Many apps rely on Visual C++ Redistributables. Download and install the latest Visual C++ Redistributable for Visual Studio 2015-2022 from Microsoft's website. Also install the 2013, 2010, and 2008 versions if the app is older than 2018.
- If the app uses .NET COM interop, install the .NET Framework 4.8 Runtime and enable it in Windows Features (Control Panel > Programs > Turn Windows features on or off > .NET Framework 4.8).
- After reinstalling, test the app.
Step 4: Last Resort — Enable COM Trace Logging
If it still fails, you need to see exactly why the class factory isn't being registered.
- Open an admin command prompt and run:
tracelog -start com_trace -guid #{ce794c94-3743-4d8b-9c4e-12b0b924932b} -f com.etl - Reproduce the error by launching the app.
- Stop the trace:
tracelog -stop com_trace - Convert the .etl file to readable text:
tracerpt com.etl -o com.txt - Open com.txt. Search for "0x800401FE" or "class factory" — the lines around it will show you which DLL failed to load and why.
I've used this trace on dozens of machines. Nine times out of ten, it points to a missing DLL or a permissions issue on a registry key. Once you know the exact DLL, you can copy it from a working machine or reinstall the specific component.
That's the full flow. Start with the reboot, move to regsvr32, and only go to the registry if you have to. You'll fix it.
Was this solution helpful?