Fail a job
HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("http://localhost:8080/v1/jobs/example/failure")) .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .method("POST", HttpRequest.BodyPublishers.ofString("{ \"leaseEpoch\": 1, \"retries\": 1, \"retryBackOff\": 0, \"errorMessage\": \"example\", \"variables\": {}, \"agentUsage\": { \"report\": { \"jobKey\": 1, \"leaseEpoch\": 1, \"traceId\": \"example\", \"correlationId\": \"example\", \"consumedTokens\": 1, \"elapsedMs\": 1, \"nonce\": \"example\" }, \"signature\": \"example\" } }")) .build();HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());System.out.println(response.body());const url = 'http://localhost:8080/v1/jobs/example/failure';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"leaseEpoch":1,"retries":1,"retryBackOff":0,"errorMessage":"example","variables":{},"agentUsage":{"report":{"jobKey":1,"leaseEpoch":1,"traceId":"example","correlationId":"example","consumedTokens":1,"elapsedMs":1,"nonce":"example"},"signature":"example"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:8080/v1/jobs/example/failure \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "leaseEpoch": 1, "retries": 1, "retryBackOff": 0, "errorMessage": "example", "variables": {}, "agentUsage": { "report": { "jobKey": 1, "leaseEpoch": 1, "traceId": "example", "correlationId": "example", "consumedTokens": 1, "elapsedMs": 1, "nonce": "example" }, "signature": "example" } }'Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Positive signed 64-bit entity key encoded as a JSON string.
Header Parameters
Section titled “Header Parameters”Tenant selection. A principal of one tenant may omit it, and if sent it must name that tenant. A principal that may act in several tenants sends it on every request.
Request Bodyrequired
Section titled “Request Bodyrequired”object
object
object
object
The activation’s agent.traceId header when the job pins one (then required and equal), else its bpm.traceId header; left out for an untraced instance. Signed as the empty line when left out.
The activation’s agent.correlationId header when the job pins one (then required and equal), else its bpm.correlationId header; left out when the activation has none. Signed as the empty line when left out.
Lower-case HMAC-SHA256 over the canonical report.
Responses
Section titled “ Responses ”Job failure accepted
Invalid request
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:invalid-argument", "title": "Bad Request", "status": 400, "detail": "The request is malformed", "instance": "/v1/jobs/2251799813685262/failure"}Authentication required
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:unauthorized", "title": "Unauthorized", "status": 401, "detail": "A valid bearer credential is required", "instance": "/v1/jobs/2251799813685262/failure"}Headers
Section titled “Headers”The caller lacks the required permission.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:forbidden", "title": "Forbidden", "status": 403, "detail": "The principal lacks the action this route requires", "instance": "/v1/jobs/2251799813685262/failure"}Tenant-scoped resource not found
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:not-found", "title": "Not Found", "status": 404, "detail": "The requested resource does not exist", "instance": "/v1/jobs/2251799813685262/failure"}Idempotency conflict
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:conflict", "title": "Conflict", "status": 409, "detail": "The idempotency key is already associated with another request", "instance": "/v1/jobs/2251799813685262/failure"}Authenticated request exceeds its configured bound
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:payload-too-large", "title": "Payload Too Large", "status": 413, "detail": "The request exceeds the configured size limit", "instance": "/v1/jobs/2251799813685262/failure"}Tenant quota exhausted
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:quota-exhausted", "title": "Quota Exhausted", "status": 429, "detail": "The tenant active-instance quota is exhausted", "instance": "/v1/jobs/2251799813685262/failure"}Non-leaking internal failure
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:internal", "title": "Internal Server Error", "status": 500, "detail": "The request could not be completed", "instance": "/v1/jobs/2251799813685262/failure"}The operation is on the reviewed allow-list of what this deployment mode cannot serve.
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:mode-not-supported", "title": "Mode Not Supported", "status": 501, "detail": "POST /v1/jobs/{key}/failure is not supported in embedded mode", "instance": "/v1/jobs/2251799813685262/failure", "mode": "embedded"}Backpressure or dependency unavailable
object
The request path.
Present only on mode-not-supported. It names the engine’s mode.
Example
{ "type": "urn:bpm:error:unavailable", "title": "Service Unavailable", "status": 503, "detail": "The required engine service is not ready", "instance": "/v1/jobs/2251799813685262/failure"}