0X800401EF

Fixing MK_E_ENUMERATION_FAILED 0x800401EF in 5 minutes

Windows Errors Beginner 👁 0 views 📅 May 28, 2026

This COM error kills drag-and-drop and file operations. Happens in Windows 10/11 when a DDE handler crashes. Fix the registry and you're done.

You're trying to drag a file into a folder, or maybe you're using an old app that uses OLE drag-and-drop, and you get this error: MK_E_ENUMERATION_FAILED (0x800401EF). The exact message is "Moniker could not be enumerated". I've seen this most often in Windows 10 and 11, especially after a bad Office update or a third-party shell extension that goes rogue. Last month, a client had it after uninstalling a PDF tool that didn't clean up its registry entries.

What causes this?

Under the hood, Windows uses something called monikers to identify objects during drag-and-drop, clipboard operations, and DDE (Dynamic Data Exchange) calls. When a program registers a moniker but the pointer is stale or the DLL is missing, COM can't enumerate it. The error code 0x800401EF is basically COM saying, "I can't find the object you're pointing at." It's not a hardware issue—it's a registry mess.

The fix

Skip reinstalling Windows. Don't run a system file checker yet. The real fix is cleaning up the HKEY_CLASSES_ROOT\CLSID and HKEY_CLASSES_ROOT\Interface keys related to the dead moniker. Here's what I do:

  1. Open Regedit (run as admin). Press Win+R, type regedit, hit Enter.
  2. Navigate to HKEY_CLASSES_ROOT\CLSID. This key holds all COM class IDs. The issue is usually a class that points to a missing DLL.
  3. Search for the error's context. If the error happens when dragging a file from one app to another, look at which app is failing. For example, if it's from an old Microsoft Office version, search for Microsoft Office or Word.Application under CLSID.
  4. Check for InProcServer32. For each suspect CLSID, expand it, look for InProcServer32, and double-click the (Default) value. If the path points to a file that doesn't exist, delete the entire CLSID key (after backing it up).
  5. Also check HKEY_CLASSES_ROOT\Interface. Same idea—look for interfaces with ProxyStubClsid32 pointing to dead CLSIDs. Delete those interface keys too.
  6. Delete the bad moniker. Use Process Monitor (procmon) to find the exact CLSID that fails. Filter on MK_E_ENUMERATION_FAILED or 0x800401EF. Procmon will show you the registry key that's causing the error. Delete that key.
  7. Restart the computer.

If you don't have Procmon, you can also try this: open Event Viewer, look under Windows Logs > Application for Event ID 1000 or 1001 from the app crashing. The details often include the CLSID.

What if it still fails?

Two things to try next. First, run sfc /scannow from an admin command prompt. But don't expect much—this is almost never a system file corruption. Second, check for malware. Some crypto-mining trojans mess with COM monikers to stay hidden. A quick scan with Malwarebytes or Windows Defender offline scan can rule that out.

If nothing works, the nuclear option is a Windows repair install using the Media Creation Tool. I've only had to do that once for a customer with a deeply corrupted COM database. But 9 times out of 10, the registry cleanup above does the trick.

Pro tip: Before deleting any registry keys, export them to a .reg file. Worst case, you can double-click it to restore. I've saved my own skin this way more than once.

Was this solution helpful?