Handle External Task Failure

Reports a failure to execute an external task by id. A number of retries and a timeout until the task can be retried can be specified. If retries are set to 0, an incident for this task is created.

Method

POST /external-task/{id}/failure

Parameters

Path Parameters

Name Description
id The id of the external task to report a failure for.

Request Body

A JSON object with the following properties:

Name Description
workerId The id of the worker that reports the failure. Must match the id of the worker who has most recently locked the task.
errorMessage An message indicating the reason of the failure.
errorDetails A detailed error description.
retries A number of how often the task should be retried. Must be >= 0. If this is 0, an incident is created and the task cannot be fetched anymore unless the retries are increased again. The incident's message is set to the errorMessage parameter.
retryTimeout A timeout in milliseconds before the external task becomes available again for fetching. Must be >= 0.
variables

A JSON object containing variable key-value pairs. Each key is a variable name and each value a JSON variable value object with the following properties:

Name Description
value The variable's value. For variables of type Object, the serialized value has to be submitted as a String value.

For variables of type File the value has to be submitted as Base64 encoded string.

type The value type of the variable.
valueInfo A JSON object containing additional, value-type-dependent properties.

For serialized variables of type Object, the following properties can be provided:

  • objectTypeName: A string representation of the object's type name.
  • serializationDataFormat: The serialization format used to store the variable.

For serialized variables of type File, the following properties can be provided:

  • filename: The name of the file. This is not the variable name but the name that will be used when downloading the file again.
  • mimetype: The MIME type of the file that is being uploaded.
  • encoding: The encoding of the file that is being uploaded.

The following property can be provided for all value types:

  • transient: Indicates whether the variable should be transient or not. See documentation for more informations.

localVariables

A JSON object containing variable key-value pairs. Each key is a variable name and each value a JSON variable value object with the following properties:

Local variables are set only in the scope of external task.

Name Description
value The variable's value. For variables of type Object, the serialized value has to be submitted as a String value.

For variables of type File the value has to be submitted as Base64 encoded string.

type The value type of the variable.
valueInfo A JSON object containing additional, value-type-dependent properties.

For serialized variables of type Object, the following properties can be provided:

  • objectTypeName: A string representation of the object's type name.
  • serializationDataFormat: The serialization format used to store the variable.

For serialized variables of type File, the following properties can be provided:

  • filename: The name of the file. This is not the variable name but the name that will be used when downloading the file again.
  • mimetype: The MIME type of the file that is being uploaded.
  • encoding: The encoding of the file that is being uploaded.

The following property can be provided for all value types:

  • transient: Indicates whether the variable should be transient or not. See documentation for more informations.

Result

This method returns no content.

Response Codes

Code Media type Description
204 Request successful.
400 application/json Returned if the task's most recent lock was not acquired by the provided worker. See the Introduction for the error response format.
404 application/json Returned if the task does not exist. This could indicate a wrong task id as well as a cancelled task, e.g., due to a caught BPMN boundary event. See the Introduction for the error response format.
500 application/json Returned if the corresponding process instance could not be resumed successfully. See the Introduction for the error response format.

Example

Request

POST /external-task/anId/failure

Request Body:

    {
      "workerId": "aWorker",
      "errorMessage": "Does not compute",
      "retries": 3,
      "retryTimeout": 60000
    }

Response

Status 204. No content.

On this Page: