Tricks for deciphering HRESULTs not listed in my previous 1935 error article

Ever since I published my blog post describing 1935 errors in more detail, I have been contacted by customers who have received various different 1935 errors during setup that have HRESULT values that are not listed in the table of common error codes in that post. Most of the HRESULT values correspond to common Win32 error codes, and so I decided to post a link to a table of those common errors. However, over the course of this weekend I was not able to find a good page to link to. However, I did find a nice resource that my former team (Windows Embedded) published that provides a handy way to translate some of the error codes. You can look at the page here, and I'll provide a brief summary as well.

Many common Win32 HRESULT values take the form 0x8007xxxx, where "xxxx" is some 4 digit number. You can open a cmd prompt and type net helpmsg xxxx (where xxxx is that additional 4 digit number left over after dropping the first 4 digits after 0x) to display a text explanation of what this error code means. For example, here are some common HRESULTs that are seen in some 1935 errors

  • net helpmsg 2 prints out "the system cannot find the file specified" (info about this 1935 error can be found here)
  • net helpmsg 3 prints out "the system cannot find the path specified"
  • net helpmsg 5 prints out "access denied"
  • net helpmsg 126 prints out "the specified module could not be found"

Sometimes error codes will be displayed as very large negative numbers like -2147024891. In order to use net helpmsg, you need to first convert this number to hexadecimal. To do this, I usually do the following:

  1. Run calc.exe
  2. Go to the View menu and choose Scientific
  3. Choose the Dec radio button at the top
  4. Type in the large negative number
  5. Click on the Hex radio button to convert it to hexadecimal
  6. Drop the leading F's and then the first 4 digits after the F's
  7. Run net helpmsg xxxx with the number that remains

I also use a tool called errlook.exe to translate HRESULT values into human readable error strings. This tool is a utility that ships as part of some versions of Visual Studio and it will index header files if you have any Platform SDKs installed on your machine, so it will provide translations for a lot of errors that net helpmsg cannot. In addition, I found a link to a command line tool called err.exe that is available for download here. It is listed as an Exchange Server tool but it appears to be a generic error code lookup utility and you don't have to have Visual Studio to get it.

Hopefully this will help you narrow down some of the common root causes of 1935 errors that can occur during .NET Framework or other product setups. Also, if anyone knows of a nice web page that contains a comprehensive list of error codes that I can link to in addition to the above tricks, please post a comment....