We have used error notifications to give us details of the errors. Some examples below
Job Name: {JOB(Active|Name)}
Result: {JOB(Active|Result)}
Exit Code: {JOB(Active|ExitCode)}
Task Name: {TASK(PrevTask,Name)}
Task Exit Code: {TASK(PrevTask,ExitCode)}
{TASK(PrevTask,ExitCodeDesc)}
Output:
[{TASK(PrevTask,StdOut)}]
Standard Error:
[{TASK(PrevTask,StdErr)}]