Cause #1: The file path or the file itself is missing or broken
This is the most common reason you see MK_E_CANTOPENFILE. The moniker — a fancy name for a COM object that links to a file — can't find the file it expects. This happens a lot with older apps that hardcode paths, like some Adobe products or legacy accounting software.
For example, you might open an old project file in Adobe Premiere Pro CS6, and it tries to load a video clip from C:\OldProjects\ but that drive was replaced. Boom, error 0X800401EA.
How to fix it
- Check the exact path the error mentions. If you don't see a path, look in the app's logs (often in %APPDATA%\AppName\logs).
- If the file was moved, copy it back to the original location, or create a symbolic link to redirect the old path to the new one. Open Command Prompt as Admin and run:
mklink /D "C:\OldProjects" "D:\NewProjects" - If the file is corrupt or deleted, restore it from backup or re-save the project file from the original source.
- Still stuck? Right-click the file, go to Properties > Security, and make sure your user has Full Control. I've seen read-only permissions cause this error too.
This fix works 70% of the time in my experience.
Cause #2: Registry permissions are messed up (especially for COM apps)
When the moniker tries to open a file through COM, it checks the registry for the file's class ID. If the registry key is missing or the current user doesn't have permission to read it, you get 0X800401EA. This is common after a Windows update or a botched uninstall.
I saw this on a Windows 11 machine after a user removed an old Visual Studio component. Suddenly, Excel couldn't open certain OLE objects.
How to fix it
- Press Win+R, type regedit, and hit Enter.
- Navigate to:
If you don't know the CLSID, search for the file extension (like .psd or .docx) under HKEY_CLASSES_ROOT.HKEY_CLASSES_ROOT\CLSID\{the CLSID from the error} - Right-click the CLSID key, choose Permissions.
- Make sure your user and SYSTEM have Read permission. If not, click Add, type your username, and give it Read.
- If you see a Deny entry, remove it. Deny always overrides Allow.
Pro tip: Export the key before changing anything (right-click > Export). I once locked myself out of a system because I deleted the wrong key.
Cause #3: DCOM permissions are blocking the moniker
This is the sneaky one. The moniker might need to launch a COM server, but the DCOM Launch and Access permissions are too restrictive. This often happens on corporate laptops with tight security policies — or after a Windows Feature Update that resets DCOM settings.
I helped a user whose company VPN blocked DCOM for non-admin accounts. Every time they tried to open a shared Excel workbook, error 0X800401EA popped up.
How to fix it
- Open Component Services (type dcomcnfg in Run).
- Expand Component Services > Computers > My Computer, then right-click My Computer, choose Properties.
- Go to the COM Security tab.
- Under Launch and Activation Permissions, click Edit Limits.
- Add your user or the group Everyone, and check Allow for Local Launch, Local Activation, Remote Launch, and Remote Activation.
- Do the same under Access Permissions > Edit Limits, adding Everyone with Allow for Local Access and Remote Access.
This is overkill for most home users, but it works when nothing else does. Just be careful — opening DCOM wide can be a security risk. On a business machine, talk to your IT team first.
Quick-reference summary
| Cause | What to check | Fix time |
|---|---|---|
| Missing or moved file | Original file path, file existence | 5 minutes |
| Registry permissions | CLSID key under HKEY_CLASSES_ROOT | 10 minutes |
| DCOM permissions | Component Services > My Computer | 15 minutes |
Start with cause #1 — it's the quickest and most common. If that doesn't work, move to #2. Cause #3 is the last resort, but it's saved me more than once. Let me know how it goes.