Any exit code that is different from 0 is considered as execution failure.
Possible frontend messages and log entries for failed commands/scripts:
Contents of standard error and standard output for failed executions (if any).
"Process exited with code: N." (for empty output, and exit code not equal to 0).
"Process killed by signal: N." (for process terminated by a signal, on Linux only).
"Process terminated unexpectedly." (for process terminated for unknown reasons).
If there is nothing in stderr, the corresponding line in Server log looks like:
Process exited with code: 1.
Which makes it impossible to understand what/where exactly failed without raising DebugLevel=4, and even then it is not possible to predict how much time will it take to catch actual issue.
Logline should contain information about what/where failed in DebugLevel=3