I know this error is infuriating—you double-click something, and instead of opening, you get a cryptic hex code that means nothing. Let's fix it.
The Quick Fix: Re-register the COM Object
Most of the time, MK_E_NOTBOUND happens because a COM object (like an OLE control or a shortcut with a moniker) isn't registered in the Windows Registry. The moniker is just a fancy name for a shortcut—it tells Windows where the object lives. When that reference is broken, Windows throws 0X800401E9.
Here's the fastest way to fix it:
- Open Command Prompt as Administrator (press Win, type cmd, right-click, select Run as administrator).
- Type the following and press Enter:
regsvr32 /i shell32.dllThis re-registers shell32.dll, which handles most of the shell shortcuts and monikers in Windows 10 and 11. Wait for the success message, then restart your PC.
If that doesn't do it, try the more direct approach—find the specific DLL or OCX that the program is calling. You'll see the module name in the error details or the Application Event Log. Then run:
regsvr32 "C:\Path\To\file.dll"Replace the path with the actual file. Don't know which file? Skip to the next section.
Why This Works
Think of the Registry as a phonebook. When a program creates a shortcut (moniker), it writes the location of the target object in the Registry. If that entry gets deleted or corrupted—after a cleanup tool, a failed uninstall, or a Windows update—the program calls the number, gets a dead line, and throws MK_E_NOTBOUND. Re-registering rebuilds that phonebook entry. It's a 30-second fix that solves maybe 70% of cases.
When It's Not a Registry Issue: Less Common Variations
1. Stale OLE Object in Office Documents
If you see 0X800401E9 when opening an Excel or Word file that contains embedded objects (like a chart from an old version), the OLE object's moniker is pointing to a server that no longer exists. The fix isn't re-registering—it's breaking the link.
- In the Office app, go to File > Info > Edit Links to Files (or Connections).
- Break the link, then re-insert the object if needed.
This is a one-off, but if it happens often, consider saving files in the newer formats (.xlsx, .docx) instead of legacy .xls or .doc.
2. Workflow Automation Tools
Tools like AutoHotkey, Python scripts using pywin32, or even PowerShell scripts that invoke COM objects can hit MK_E_NOTBOUND when the COM class isn't properly registered. For instance, a script that tries to automate Excel via COM but Excel's COM registration is broken.
Fix: Reinstall the application that provides the COM object—usually Microsoft Office or a third-party SDK. But before that, check if the object is registered with this PowerShell command:
Get-ChildItem HKLM:\SOFTWARE\Classes\CLSID | Where-Object { $_.PSChildName -eq '{your-GUID}' }If the GUID is missing, reinstall the software.
3. Sandboxing or Virtualization
Running Windows in a VM or using sandbox software (like Sandboxie) can trigger MK_E_NOTBOUND when the moniker tries to access a path that doesn't exist in the isolated environment. This is a known pain with VMware Workstation and older games.
Fix: Run the program outside the sandbox or VM, or map the missing drive letter. For a VM, ensure you have the guest additions installed—they handle COM interop properly.
4. Corrupted User Profile
Rare, but if you only see the error when logged in as one user and not another, your profile's registry hive (NTUSER.DAT) may have broken moniker references. The quick test: create a new user account and try the same operation. If it works, you can migrate your files and settings.
Prevention: Stop It From Coming Back
- Stop using registry cleaners. I've seen them strip out entries they think are junk—monikers are common casualties. Windows doesn't need them.
- Keep your software up to date. Old Office versions and legacy COM components are the usual suspects. Update to the latest service packs.
- Uninstall properly. Always use the vendor's uninstaller. Don't delete folders manually—that leaves orphaned registry entries that later cause errors.
- Back up your registry before any COM-related changes. I know it's boring, but a single export could save you an afternoon.
This error isn't going to break your machine, but it will annoy you until you fix it. Try the regsvr32 command first. If you're still stuck, leave a comment with the exact program and Windows version—I'll help you track down the specific moniker.