Translating Exit Codes from -214... to something Meaningful

We have about a 20% failure rate on the deployment of Fixlet ID 402534103: MS17-JUL: Security Monthly Quality Rollup - Monthly Rollup - Windows 7 SP1 - KB4025341 (x64). The Action Script Execution Details all say Completed. Any idea how to get meaningful information out of these exit codes?

Exit Code		Count of Host
-2146885628		700
-2146498497		235
-2145124322		31
-939523085		28
-2145124329		14
-2147467259		6
-2146959355		6
-2146498302		6
-2147467262		1
-2145124330		1
-2145099774		1
-1906441222		1
1 Like

If these are standard Microsoft exit codes, they are actually 32 bit HEX codes

So if you take the first -2146885628 … and convert it you get 0x80092004. You usually can also just search for the exit codes.

This seems to be Neutral package installation failed (exit code = 0x80092004 (2148081668))

I used http://www.binaryhexconverter.com/decimal-to-hex-converter to make it easy to show the work.

1 Like

I’m certain that a hex translator would work but I wasn’t getting the expected results using Windows Calculator in Programmer mode; I double check and I see it is correct. I’m loosing my mind.

Manually installing it on a failed system using the same download and command line that the fixlet uses worked, so I’m going to redeploy just this patch (not forcing a reboot though). That should get my failure rate down. Still not sure why these would fail, these “Rollups” aren’t fun…

The conversion doesn’t often go well with a “negative” number so it can be difficult :slight_smile:

tl;dr
There’s a good converter I just came across at https://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

Click the “Binary Type” drop-down, and select “signed 32-bit”, then in the decimal field you can enter the original -2146885628 which yields hexadecimal 80092004.

Background:

The “oddness” here is in how computer systems represent a negative integer, known as Two’s Complement. https://en.wikipedia.org/wiki/Two’s_complement

Internally, the return value is simply 32-bits of binary values. It’s only when you try to represent it as a “signed integer” in the return code, that the highest bit is considered a “negative sign” bit and it’s displayed as a negative value. When representing a negative value, basically every bit is flipped, add a “1”, and display the result with a negative sign. But to display the (actual) result in hex, we have to “not do” all of that.
10000000000010010010000000000100 = 0x80092004
But, when displayed as a “signed integer” type, that leading 1 indicates a negative value, the two’s complement operation is performed on it, and you get a -2146885628 displayed.

Windows Calculator works fine for me, in Programmer mode with “DWord” selected.

Hi @AlexaVonTess,

The patch "4346084: Intel microcode updates - Windows 10 Version 1803 - KB4346084 (x64) (V3.0)"
Was failed with the exit code -2145124330 on one of the computer in our recent patching.

All the lines in the fixlet were completed successfully but it’s failed with the exit code.

Do you know what’s the solution for this exit code -2145124330?

Thanks in advance

Thank you,

Regards,
Riyazbasha

That’s a Microsoft Exit code in decimal and you need to translate it into hexadecimal, which would be 0x80240016. You would then Google that code and find that it is the “it could be anything” error code.

Best way to fix is to create a baseline with the patch preceded by a “Windows Update Troubleshooting” fixlet, whose Action Script is:

// Checks to see if Windows Update service is Disabled
if {start type of service "wuauserv" = "disabled"}
waithidden cmd /C sc config {"wuauserv"} start= demand
endif

// Stops Windows Update service if running
if {state of service "wuauserv" = "Running"}
waithidden net stop wuauserv
endif

// Deletes Windows Update DataStore
folder delete "C:\windows\SoftwareDistribution\DataStore"

We actually not only run that, but run a SFC /scan now followed by a 20 minute delay, followed by the code above, followed by our troubled patch.

1 Like

There is a great log viewer in the Microsoft SCCM Client Toolkit called CMTrace and this has a error code lookup feature (via Ctrl-L) that is great for searching various formats of Microsoft error codes.

https://www.microsoft.com/en-us/download/details.aspx?id=50012

imageimageimage

4 Likes

Hi Alexa,

FYI: Fixlet “4346084: Intel microcode updates - Windows 10 Version 1803 - KB4346084 (x64) (V3.0)” is not showing on the relevant for the problematic client.

So as you suggested still you want me to deploy a baseline with the below things?Please confirm me
1)Windows Update Troubleshooting Fixlet with the action script gave by you
2)Fixlet “4346084: Intel microcode updates - Windows 10 Version 1803 - KB4346084 (x64) (V3.0)”

i didn’t understood on the scan/SFC where i need to add with the which action script?

Regards,
Riyazbasha

I don’t want you do to anything. They’re your systems. I was just trying to offer some helpful information. Bottom line: Your issues aren’t BigFix related and better suited for a Microsoft forum.

SFC is a very common Microsoft troubleshooting command.

4 Likes

AVT Thanks so much for this thread and everyone who contributed sensible resolutions! I’ve been trying to fully understand how to fix this for years and now I really feel empowered.

Relevance to the rescue:

q: (-2146498497 as integer) as hexadecimal
A: ffffffff800f083f
4 Likes