I have several executables that just don't run on your build system (under docker), and no way I can see to debug

The “standard exit codes” I meant are large – e.g. 128+ if the process was terminated or 3221225781 if a dependent DLL was not found. They are substituted by the system when it forcibly terminates the process.
(They are not actually “standard” in that they are not documented as such or “restricted”, but programs themselves typically don’t use such large codes (and it’s in their best interests not to), so if you see one, it’s safe to assume that it was substituted by the system.)

1 is rather a generic failure exit code that the program itself sets if it encountered an error.

According to Совместимость версий контейнеров Windows | Microsoft Learn, if the container wasn’t compatible with the host OS, it would not start at all.

The generic exit code rather suggests that the program encountered some error.
Since it gives no output whatsoever about what it considered wrong, I cannot say anything else.

E.g. it might unconditionally assume availability of something that is only available in the latest Windows releases.

1 Like