CYC0616
CYC0616

Reputation: 675

Decode HResult = -2147467259

Can someone help me decode this HResult? What does it mean? I know the negative stands for a failure. How about the rest of the 10 bits?

I referenced MSDN HResult article here, but I am not sure how to determine what my facility and code bits are.

More info:

_message: "External component has thrown an exception."
Data: {System.Collections.ListDictionaryInternal}

Upvotes: 45

Views: 67771

Answers (5)

Sahil Singh
Sahil Singh

Reputation: 3797

Decoding the error code with tools.

  1. Visual Studio Error lookup tool (link)
  2. Microsoft Err.exe command line tool (standalone) (link) (download)
  3. Online utility - https://errorcodelookup.com

1. Visual Studio Error lookup tool

Usage: enter image description here

Locating the tool in Visual Studio (VS 2022):

enter image description here

On my system it is present at the following location:

"C:\Program Files\Microsoft Visual Studio\2022\Professional\Common7\Tools\errlook.exe"

2. Microsoft Err.exe command line

Microsoft also has a standalone commandline tool for decoding HRESULT errors: Err.exe. You need not install visual studio for this.

Usage:

PS C:\Users\j\Downloads> .\Err_6.4.5.exe 0x80004027
# for hex 0x80004027 / decimal -2147467225
  CO_E_CLASS_DISABLED                                            winerror.h
# The component or application containing the component has
# been disabled.
# 1 matches found for "0x80004027"
PS C:\Users\j\Downloads> .\Err_6.4.5.exe -2147467225
# for decimal -2147467225 / hex 0x80004027
  CO_E_CLASS_DISABLED                                            winerror.h
# The component or application containing the component has
# been disabled.
# 1 matches found for "-2147467225"

enter image description here

0x80004027 (-2147467225) is the error code above. As you can see it accepts both hex, and negative integers.

3. Online utility - https://errorcodelookup.com

The website allows you to decode error codes online.

eg. https://errorcodelookup.com/?q=0x80004027

enter image description here

PS: The answer expands upon @BenjaminB's answer with some of my learnings. The error lookup tool is suggested in a comment by @Ohad Schneider.

Upvotes: 3

Alexandru
Alexandru

Reputation: 12922

Another way to do it is as follows. An HRESULT should contain a System Error Code in its first 32 bits. Using an AND operation will retrieve the error code from the HRESULT:

int result = (-2147467259 & 0xFFFF)

result is 16389, which is not a part of the System Error Codes list, and as a result, is unspecified.

Upvotes: 4

Chris
Chris

Reputation: 2763

I'll show you how to do it. Paste the negative number into Calculator (Windows) in programmer mode "Dec" setting. Then convert to "Hex" setting. You get the number: FFFFFFFF80004005. The error is 80004005 which is:

0x80004005
E_FAIL
Unspecified 

Unfortunately the provider of the function that gave you this error did not categorize the error.

Useful links:

  1. MSDN - HRESULT Format
  2. MSDN - HRESULT Error List

Upvotes: 90

Michael Petrotta
Michael Petrotta

Reputation: 60962

-2147467259 in decimal is 80004005 in hexadecimal (usually rendered as 0x80004005). That's "E_FAIL (Unspecified error)" in Win32.

Not a very helpful error code, but maybe it'll get you a half-step closer to a solution.

Upvotes: 3

BenjaminB
BenjaminB

Reputation: 1869

Print it as an hexadecimal number, then, use for instance, VisualStudio ErrorLookup, to get the message.

Upvotes: 4

Related Questions