Windows System Errors
COR_E_EXCEPTION
0x80131500Reviewed for reference consistency: August 11, 2026
the managed runtime's base HRESULT for an unhandled exception
What 0x80131500 Means
The 0x80131500 error on the Windows System Errors indicates cor_e_exception — the managed runtime's base hresult for an unhandled exception. This typically occurs due to a managed application threw an exception that no handler caught.
Every managed exception in the CLR carries an HRESULT, and the base value — assigned when nothing more specific applies — is 0x80131500, COR_E_EXCEPTION. Microsoft's Exception class documentation states the pairing directly: the class uses the HRESULT COR_E_EXCEPTION, which has the value 0x80131500, decimal -2146233088. The facility field 0x13 marks it as a runtime-facility code, separate from the Win32 facility 0x0007.
How to fix 0x80131500
General informational guidance, not professional advice. Commands can affect your system or data — back up first and proceed at your own risk. FixerCode is an independent reference, not affiliated with any vendor mentioned.
Read the .NET Runtime error entries
The Application log's .NET Runtime provider records the exception type, message, and stack next to the HRESULT.
Get-WinEvent -FilterHashtable @{LogName='Application'; ProviderName='.NET Runtime'} -MaxEvents 20 | Select-Object TimeCreated, MessageList the installed runtimes
Runtime versions shape behavior and patch level; the listing frames which runtime produced the failure.
dotnet --list-runtimes
Technical Background
HRESULT framing makes the code legible at a glance. Severity 0x8 marks failure; facility 0x13 is the runtime's own facility rather than Win32's 0x0007; the code field 0x1500 completes COR_E_EXCEPTION. Values in the 0x8013XXXX range all belong to that runtime facility, which is why managed errors form a visibly separate family from the 0x8007XXXX Win32 wrappers even when both describe similar conditions.
The specific-versus-generic split follows the exception hierarchy. Derived exception classes map to their own HRESULTs — E_OUTOFMEMORY for out-of-memory, E_INVALIDARG for invalid arguments — while the base class value covers everything thrown as plain Exception or left without a more specific assignment. Tooling that reports only the HRESULT therefore shows 0x80131500 for a wide range of managed failures, and the exception message and stack carry the actual diagnosis.
Common Causes
- A managed application threw an exception that no handler caught
- Interop code surfaced a managed failure to a COM caller without a specific HRESULT
- A service or installer built on the runtime recorded its generic failure surface
Typical Scenarios
- A .NET application crashes with an unhandled exception and the event log's .NET Runtime entry carries the HRESULT
- A managed service fails during startup and tooling records the generic runtime failure surface
- An installer or management tool built on the runtime logs 0x80131500 where a more specific HRESULT was never assigned
What to Know
The HRESULT identifies the family and nothing finer: the .NET Runtime event-log entries beside it hold the exception type, message, and call stack that the code itself does not.
Frequently Asked Questions
Common questions about Windows 0x80131500 error
The Exception class documentation states: 'The Exception class uses the HRESULT COR_E_EXCEPTION, which has the value 0x80131500.' The decimal form is -2146233088.
0x8007XXXX wraps Win32 errors under facility 0x0007. Facility 0x13 belongs to the .NET runtime itself, so managed failures form a separate HRESULT family with their own code field.
E_FAIL is the COM generic-failure constant under facility 0. COR_E_EXCEPTION is the managed runtime's base value under facility 0x13. Both are generic surfaces, but they report failures from different runtimes.
Related Error Codes
Related Errors From Other Categories
Similar error codes documented across different platforms and systems
Git paused the merge because it cannot automatically resolve overlapping changes.
Git aborted the merge to protect uncommitted changes in your working directory.
Git prevented a branch switch because it would overwrite unsaved changes in your working directory.
Git aborted the merge because it would overwrite untracked files in your working directory.