Workflow Hub runtime now supports handling of errors as described in the serverless workflow specification.
The runtime identifies the error types via the error code, allowing you to use domain-specific names for your errors.
The runtime recognizes the following error codes:
-
RESTXXX: The response code followed by REST can handle errors arising from a REST request having the specified response code. Example: REST404 can be used to handle errors arising from a REST request with a 404 response code.
-
REST: This error code can be used to handle any REST error.
-
ASYNC: This error code can be used to handle async function errors.
-
SUBFLOW: This error code can be used to handle errors arising from sub-workflow failures.
-
PARALLEL: This error code can be used to handle errors from parallel actions, for example, for each state in parallel mode, parallel state.
-
ERROR: This error code can be used to handle any of the defined errors mentioned above.
errors:
- name: "NodePoolNotFound"
code: "REST404"
description: Indicates that the requested resource does not exist.
states:
- name: Query_NodePool
type: operation
actions:
- functionRef:
refName: getNodePool
arguments:
tca: "${ .tca }"
Accept: application/json
Content-Type: application/json
x-hm-authorization: '${ ."x-hm-authorization" }'
clusterUUID: "${ .clusterUUID }"
mgmtClusterName: "${ .mgmtClusterName }"
tcaCpId: "${ .tcaCpId }"
nodepoolName: "${ .metadata.name }"
orgId: '${.orgId}'
onErrors:
- errorRefs:
- NodePoolNotFound
transition: Create_NodePool
transition: Skip_Create_NodePool