Exit Code 128 - there are no child processes to wait for

As a general principle, think of error 128 as a program execution problem of some kind. The translation (ie., C:\> net helpmsg 128) of exit code 128 is:

This error has been seen under two conditions:

Of the two observed conditions, truncated patches are more common.

Truncated Patches

When deploying a Windows update, an exit code 128 probably indicates a truncated download of the file. A truncated download means the file is shorter than it should be. A truncation might occur for two main reasons:

You would expect an interruption or corruption to produce the odd bad download, or several bad downloads during a period where the network is having problems. A proxy configuration problem will likely affect every patch you try to download, and will likely result in a consistent truncation length. For example, we've had proxy truncations where every patch downloaded is 3kb in length. We've had reports of other truncation lengths like 40kb.

"There are no child processes to wait for" is being generated because the update (in this case a heavily truncated service-pack, only 3kb) tried to install on the target, and of course it ran some small amount of code then terminated abnormally. We suspect the parent was supposed to wait for the child to complete, but the child terminated abnormally.

Troubleshooting Steps

  1. Confirm the update size by noting the hex file name referenced in UpdateEXPERT, finding the file in the download repository, and comparing it to the size reported on the Microsoft download page. If your "hex" file is 3kb, and the update size according to Microsoft is 27kb, that's a problem. In File>Agent>Settings, set Timeout to 120, Retries to 3 and re-download. Also, incorrect proxy settings in File>Agent>Settings can cause this problem. Confirm that the size is correct and redeploy.

  2. If the error persists (which is unlikely), schedule a deployment for a future date (so the install is delayed long enough for you to look) and check the size of the update executable on the target system <systemroot>\UE_INSTALLS\<hex folder name>. The size should be correct (same as file in depository). If not, something is happening during the transfer. If it IS correct, and still won't install, contact support.

See Also: UE0185 (Unable to Launch a Process) UE0389 (Truncated Downloads)

Custom-Fix (cmd.exe)

When deploying a Custom-Fix, be aware of compatibility issues for any programs that you may be pushing to the target machines. The dialogue box below was produced on an XP/SP0 machine (in a addition to Error 128 above) by a Windows 2003 Custom-Fix pushing the "cmd.exe" of Windows 2003 to Windows 2000 and XP machines. In this case, pushing a Windows 2000 or XP "cmd.exe" to Windows 2003 worked fine.

The Custom-Fix was not tested with XP/SP1 or XP/SP2 targets.

Clearly, error 128, "There are no child processes to wait for" is being generated because the cmd.exe files for XP/SP0 and Windows 2003 differ, causing the execution problem on the XP machine. The solution is to push out a compatible cmd.exe, or even better, don't push out cmd.exe at all, just use the cmd.exe that already exists on each target.

As a general principle, think of error 128 as a program execution problem of some kind.