Description
E_ABORT (hex code 0x80004004, decimal -2147467260) is a Windows warning-level error code in the COM & DCOM Errors family. Microsoft surfaces this code through the Win32 API, the Common Language Runtime, the kernel, the event log, PowerShell, command-line tools (sfc, dism, gpupdate, sc), and Windows-side applications such as Outlook, Teams, Office, and System Center.
Operation aborted.
This page documents what triggers 0x80004004, the most common scenarios where it appears, the likely root causes, and a step-by-step troubleshooting workflow you can run against affected endpoints. It is intended for system administrators, MSP technicians, helpdesk engineers, and anyone diagnosing Windows behavior in a managed environment.
In-depth explanation
This is a warning-severity code. The operation did not necessarily fail; Windows may have completed it with side effects, conflicts, or a state that requires user attention. It is normally safe to retry, but should still be logged so repeated occurrences can be triaged.
It is part of the COM / DCOM / OLE error space. It typically surfaces during COM activation (CoCreateInstance), DCOM hardening events (10016), or OLE-DB / RPC marshaling failures.
The code can be looked up programmatically in PowerShell with [ComponentModel.Win32Exception]::new(-2147467260).Message (for Win32 / NTSTATUS codes that map cleanly), or with net helpmsg <decimal> for the legacy decimal range. For HRESULT-style codes, decode the facility and code with err.exe from the SDK or via the WinDbg !error command.
Common causes
- COM class not registered (
regsvr32missing or 32-bit / 64-bit mismatch). - DCOM Launch / Activation permissions stripped by Group Policy or hardening.
- COM server crashed and is no longer responding to existing proxies.
- Mismatched apartment threading model between caller and server.
- Missing or corrupted dependency DLL referenced by the COM server.
Troubleshooting steps
- Identify the failing CLSID/AppID from the event log entry (Event 10016 in System log) or the calling application's trace.
- Open
dcomcnfg, locate the AppID under Component Services > Computers > My Computer > DCOM Config, and verify Launch / Activation / Access permissions. - Re-register the failing COM server:
regsvr32 <server.dll>(use%WINDIR%\SysWOW64\regsvr32.exefor 32-bit on x64 Windows). - Check dependencies with Dependency Walker or
dumpbin /dependents— a missing DLL is a common root cause. - Validate that the calling process matches the threading model expected by the COM server (STA vs MTA).
Decode in PowerShell
# Decode 0x80004004 (-2147467260) in PowerShell
[ComponentModel.Win32Exception]::new(-2147467260).Message
# Or via WinDbg / err.exe (Windows SDK)
# err 0x80004004
# Or net helpmsg (legacy decimal range only)
# net helpmsg <decimal>Frequently asked questions
What does the Windows error code 0x80004004 mean?
E_ABORT (decimal -2147467260). Operation aborted.How do I decode 0x80004004 in PowerShell?
[ComponentModel.Win32Exception]::new(-2147467260).Message in any PowerShell session. For HRESULT-style codes, use err.exe from the Windows SDK or the WinDbg !error command.Where does Windows typically log this error?
%WinDir%\WindowsUpdate.log; AD/Kerberos → Security event log on the DC; BSOD → minidump under C:\Windows\Minidump; MSI → %TEMP%\msi*.log; WMI → Microsoft-Windows-WMI-Activity). Always cross-reference the timestamp and module name with the Application and System event logs.Is this code recoverable?
Should I open a Microsoft support case for this?
Get-WinEvent export ready before opening the case.
