0X8004000C

OLE_E_PROMPTSAVECANCELLED Fix: User Canceled Save Dialog

Windows Errors Beginner 👁 8 views 📅 May 28, 2026

This error pops up when a user cancels a Save dialog during an OLE operation. It's common in Office apps dragging objects between documents.

You Canceled the Save Dialog — Fix #1: Don't Cancel It

I know that sounds dumb, but hear me out. The OLE_E_PROMPTSAVECANCELLED error with code 0X8004000C literally means you — or the code you're running — canceled a Save dialog box during an OLE operation. Think about dragging an embedded spreadsheet from an email into an Excel workbook. When you drag it, Windows tries to save the embedded object first. If you hit Cancel on that Save dialog, boom — you get 0X8004000C.

Had a client last month whose entire accounting team couldn't drag PDFs into Outlook without this error. Every single person was reflexively clicking Cancel on the “Save Embedded Object” prompt. The fix? Just click Save or Yes when that dialog appears. That's it.

If you're the one writing code or a macro that triggers this, check your DoVerb or Activate calls. You're probably not handling the user's Cancel action. Wrap it in a proper error handler — VBA's On Error Resume Next isn't good enough here. Use something like:

On Error GoTo ErrHandler
' your OLE activate code here
Exit Sub
ErrHandler:
If Err.Number = -2147221492 Then ' 0x8004000C
   ' User canceled, just exit gracefully
   Resume Next
End If

Fix #2: The Real Culprit — Bad OLE Data in the Clipboard or Drag Source

Sometimes you're not the one canceling. The error fires because the source application (like an old copy of Word 2016 or a dodgy PDF reader) spits out a cancel signal before the dialog even shows. This happens when the OLE data is corrupted or the source app crashed silently.

I saw this with a small law office using an ancient document management system. Every time they dragged a .docx file into their system, they got 0X8004000C. Turned out the source file had a broken OLE link inside it. The real fix: open the source file, do a Ctrl+A to select everything, copy it to a blank new file, then save that new file. Destroys the broken OLE data.

Also check if the source app is running in compatibility mode. Right-click the app's shortcut, go to Properties > Compatibility, and uncheck every box there. Windows 10 and 11 hate mixing OLE with compatibility layers. Had to do this for a QuickBooks 2015 install last year — night and day difference.

Fix #3: Registry Tweaks to Kill Stale OLE Handlers

If the above fails, you've got a stuck OLE handler in the registry. This is rarer but nasty. Think of it like a zombie OLE server that keeps popping up the save dialog from a half-dead process.

First, open Task Manager (Ctrl+Shift+Esc) and kill any instance of excel.exe, winword.exe, or whatever app you're using. Restart it fresh. If that fixes it, you had a hung process.

If not, we need to nuke the OLE handler cache. Open Registry Editor (regedit) and go to:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole

Look for a DWORD called EnableDCOM — set it to Y (or delete it entirely if it's broken). Then navigate to:

HKEY_CLASSES_ROOT\CLSID

Search (Ctrl+F) for your app's name or the object class ID you're dragging. Delete any keys that look orphaned — for example, stray InprocServer32 entries pointing to files that don't exist. Be careful: only delete what you know is orphaned. Back up the key first (right-click > Export).

Last resort: reset OLE by deleting the Ole key entirely. Windows will rebuild it the next time OLE is used. But do this only if you're comfortable with regedit and have a backup.

Quick-Reference Summary Table

Cause Fix Difficulty
User canceled Save dialog Click Save instead of Cancel; add error handler in code Beginner
Corrupt OLE data in source file Copy all content to new file; disable compatibility mode Intermediate
Stale OLE handler in registry Kill hung processes; delete orphaned CLSID keys; reset Ole key Advanced

Was this solution helpful?