Open tetron opened 1 month ago
Discussion:
An option to recover from errors should include a standard reporting mechanism.
Proposal:
onError
behavior can be set at the workflow level or the individual step level.
If onError
is true, when a step fails, produces "null" on all output parameters and information about the failed step is added to a logical "errors" list which is internal to the workflow runner.
If any errors ocurred, the output object includes a field "cwl:errors" which is an array objects providing basic information about each workflow step that failed.
{
cwl:errors: [
{
stepId: URI for the step definition
errors: [if this was a subworkflow, errors within the subworkflow]
index: (scatter index or loop iteration counter, or null)
jobId: platform-specific identifier for the specific job (provenance id, job uuid, etc)
}
]
}
For cross-product scatters, might want to do 'index' differently.
Want a way to specify that step failure isn't fatal for the workflow.
Proposal
Possible values of
onError
Discussion points:
Related:
Make successCodes, temporaryFailCodes and permanentFailCodes accept ranges in the form of "1-10"