curl --request POST \
--url http://127.0.0.1/v1/jobs/{id}/cancel \
--header 'Authorization: Bearer <token>'import requests
url = "http://127.0.0.1/v1/jobs/{id}/cancel"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('http://127.0.0.1/v1/jobs/{id}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "http://127.0.0.1/v1/jobs/{id}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1/v1/jobs/{id}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://127.0.0.1/v1/jobs/{id}/cancel")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://127.0.0.1/v1/jobs/{id}/cancel")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"error": {
"code": "<string>",
"message": "<string>"
},
"evidence": {
"reason": "write_failed",
"status": "mirror_lost"
},
"execution_id": "<string>",
"outputs": {},
"receipt": {
"execution_id": "<string>",
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"snapshot_digest": "<string>",
"trace_id": "<string>",
"chain_head": "<string>",
"origin": {
"kind": "manual"
}
},
"settlement": {
"cause": "normal",
"spend": {
"priced_calls": 1,
"qualifier": "priced",
"unpriced_calls": 1,
"by_source": {},
"pricing_as_of": "<string>",
"total_cost_usd": 1
},
"status": "succeeded",
"elapsed_ms": 1,
"error": {
"code": "<string>",
"message": "<string>",
"task": "<string>"
},
"tasks": {
"cancelled": 1,
"failed": 1,
"never_started": 1,
"ok": 1,
"recovered": 1,
"skipped": 1,
"total": 1
}
},
"trace_id": "<string>"
}{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"error": {
"code": "<string>",
"message": "<string>"
},
"evidence": {
"reason": "write_failed",
"status": "mirror_lost"
},
"execution_id": "<string>",
"outputs": {},
"receipt": {
"execution_id": "<string>",
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"snapshot_digest": "<string>",
"trace_id": "<string>",
"chain_head": "<string>",
"origin": {
"kind": "manual"
}
},
"settlement": {
"cause": "normal",
"spend": {
"priced_calls": 1,
"qualifier": "priced",
"unpriced_calls": 1,
"by_source": {},
"pricing_as_of": "<string>",
"total_cost_usd": 1
},
"status": "succeeded",
"elapsed_ms": 1,
"error": {
"code": "<string>",
"message": "<string>",
"task": "<string>"
},
"tasks": {
"cancelled": 1,
"failed": 1,
"never_started": 1,
"ok": 1,
"recovered": 1,
"skipped": 1,
"total": 1
}
},
"trace_id": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Request cancellation or replay an ended observation
A queued job cancels atomically before execution claims it. An active job receives the run-scoped cancellation signal and returns 202 until its execution owner settles: the result may be success, failure or cancellation; expired grace means interrupted, never an invented cancellation. A paused or final observation returns its existing result unchanged.
curl --request POST \
--url http://127.0.0.1/v1/jobs/{id}/cancel \
--header 'Authorization: Bearer <token>'import requests
url = "http://127.0.0.1/v1/jobs/{id}/cancel"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('http://127.0.0.1/v1/jobs/{id}/cancel', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "http://127.0.0.1/v1/jobs/{id}/cancel",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "http://127.0.0.1/v1/jobs/{id}/cancel"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://127.0.0.1/v1/jobs/{id}/cancel")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("http://127.0.0.1/v1/jobs/{id}/cancel")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"error": {
"code": "<string>",
"message": "<string>"
},
"evidence": {
"reason": "write_failed",
"status": "mirror_lost"
},
"execution_id": "<string>",
"outputs": {},
"receipt": {
"execution_id": "<string>",
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"snapshot_digest": "<string>",
"trace_id": "<string>",
"chain_head": "<string>",
"origin": {
"kind": "manual"
}
},
"settlement": {
"cause": "normal",
"spend": {
"priced_calls": 1,
"qualifier": "priced",
"unpriced_calls": 1,
"by_source": {},
"pricing_as_of": "<string>",
"total_cost_usd": 1
},
"status": "succeeded",
"elapsed_ms": 1,
"error": {
"code": "<string>",
"message": "<string>",
"task": "<string>"
},
"tasks": {
"cancelled": 1,
"failed": 1,
"never_started": 1,
"ok": 1,
"recovered": 1,
"skipped": 1,
"total": 1
}
},
"trace_id": "<string>"
}{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "queued",
"error": {
"code": "<string>",
"message": "<string>"
},
"evidence": {
"reason": "write_failed",
"status": "mirror_lost"
},
"execution_id": "<string>",
"outputs": {},
"receipt": {
"execution_id": "<string>",
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"snapshot_digest": "<string>",
"trace_id": "<string>",
"chain_head": "<string>",
"origin": {
"kind": "manual"
}
},
"settlement": {
"cause": "normal",
"spend": {
"priced_calls": 1,
"qualifier": "priced",
"unpriced_calls": 1,
"by_source": {},
"pricing_as_of": "<string>",
"total_cost_usd": 1
},
"status": "succeeded",
"elapsed_ms": 1,
"error": {
"code": "<string>",
"message": "<string>",
"task": "<string>"
},
"tasks": {
"cancelled": 1,
"failed": 1,
"never_started": 1,
"ok": 1,
"recovered": 1,
"skipped": 1,
"total": 1
}
},
"trace_id": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Exactly one Authorization: Bearer value from the token file
Path Parameters
Response
Cancelled before execution, or already ended observation
queued and running: the resident owns the execution. interrupted: execution ownership was lost and effect settlement is unknown โ an EVIDENCE state (the journal is INCOMPLETE), never a run state (ADR-129). paused, succeeded, failed and cancelled: the run's own settlement, the words its terminal frame carries (ADR-128).
queued, running, interrupted, paused, succeeded, failed, cancelled Show child attributes
Show child attributes
Reported journal delivery loss, independent of execution status. The reason classifies the mirror's first error without exposing OS text or paths. Absence is not a claim that a journal exists.
Show child attributes
Show child attributes
Declared workflow outputs; present only after settlement when supplied by the execution adapter
Terminal binding to the exact immutable admitted execution
Show child attributes
Show child attributes
The run's settlement (ADR-128), built once by the runtime and projected whole: the state word every door speaks, why, the elapsed time on the kernel clock, the task tally, the spend with its qualifier, the failure named. Unknown cost is never zero: total_cost_usd is absent when nothing was metered. Present on the terminal event and durable job response of a job whose runtime settled; absent when the resident lost the execution (interrupted) or refused it before any task. Reattachment and idempotent admission replay project the same hash-bound terminal event, never a new settlement.
Show child attributes
Show child attributes
Was this page helpful?