Skip to main content
POST
Cancel job

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Path Parameters

id
string<uuid>
required

A UUID string identifying this job.

Response

The one job response shape, served everywhere a job is returned.

workflow is the slim reference rather than the full workflow: the only workflow fields a job's consumers read are id, name and temporal_workflow_name, while the full row carries a parameters_schema measuring several KB — a cost every row of the jobs table and the job-device-status list would pay for nothing.

The four projection fields below are the jobs list's own: they are populated only when the queryset carries the row projection, and dropped from the payload otherwise. That keeps the per-device summary off the job-device-status embed, where one copy per row of the job's whole device array is quadratic in the job's device count.

id
string<uuid>
required
read-only
workflow
object
required

Compact workflow reference embedded in every job response.

Includes the fields required by the fleet-manager client's WorkflowRef model while skipping expensive computed fields like parameters_presets.

category is here because the UI reads it off a job's workflow, and it costs nothing: Workflow.category is a dict lookup on temporal_workflow_name, not a column or a query. Declared exactly as WorkflowSerializer declares it so both resolve to one named enum component instead of splitting into two generated types.

created_by
string | null
required
read-only

Return the creator: username, app client_id with prefix, or None.

ai_failure_summary
object | null
required

AI-generated failure summary for jobs that ended in FAILED or PARTIALLY_FAILED

test_slugs
enum<string>[]
required
read-only

Distinct test slugs from associated test executions

  • multi-node.hello-world - multi-node.hello-world
  • multi-node.iperf-matrix - multi-node.iperf-matrix
  • multi-node.nccl-all-gather - multi-node.nccl-all-gather
  • multi-node.nccl-all-reduce - multi-node.nccl-all-reduce
  • multi-node.nccl-all-reduce-multi-rack - multi-node.nccl-all-reduce-multi-rack
  • multi-node.nccl-all-to-all - multi-node.nccl-all-to-all
  • multi-node.nvloom - multi-node.nvloom
  • multi-node.pairwise-net-gpu.bw - multi-node.pairwise-net-gpu.bw
  • multi-node.pairwise-net-gpu.lat - multi-node.pairwise-net-gpu.lat
  • multi-node.pairwise-net.bw - multi-node.pairwise-net.bw
  • multi-node.pairwise-net.lat - multi-node.pairwise-net.lat
  • multi-node.s3-elbencho - multi-node.s3-elbencho
  • multi-node.storage-elbencho - multi-node.storage-elbencho
  • multi-node.training-gpt-oss-120b - multi-node.training-gpt-oss-120b
  • multi-node.training-llama3-1-405b - multi-node.training-llama3-1-405b
  • multi-node.training-llama3-70b - multi-node.training-llama3-70b
  • multi-node.training-nemotron-24x2h - multi-node.training-nemotron-24x2h
  • multi-node.training-nemotron-checkpoint - multi-node.training-nemotron-checkpoint
  • multi-node.training-nemotron-h - multi-node.training-nemotron-h
  • multi-node.training-nemotron-h-multi-rack - multi-node.training-nemotron-h-multi-rack
  • multi-node.training-qwen3-235b - multi-node.training-qwen3-235b
  • single-node.babelstream - single-node.babelstream
  • single-node.dcgmi-diag - single-node.dcgmi-diag
  • single-node.gpu-fryer - single-node.gpu-fryer
  • single-node.hello-world - single-node.hello-world
  • single-node.hpl-cpu - single-node.hpl-cpu
  • single-node.hpl-gpu - single-node.hpl-gpu
  • single-node.lmbench-lat-mem-rd - single-node.lmbench-lat-mem-rd
  • single-node.memtester - single-node.memtester
  • single-node.nccl-all-gather - single-node.nccl-all-gather
  • single-node.nccl-all-reduce - single-node.nccl-all-reduce
  • single-node.nccl-all-reduce-loopback - single-node.nccl-all-reduce-loopback
  • single-node.nccl-all-to-all - single-node.nccl-all-to-all
  • single-node.node-health-check - single-node.node-health-check
  • single-node.nvme-fio - single-node.nvme-fio
  • single-node.nvme-self-test - single-node.nvme-self-test
  • single-node.storage-elbencho - single-node.storage-elbencho
  • single-node.stream - single-node.stream
  • single-node.stress-ng-cpu - single-node.stress-ng-cpu
  • single-node.training-llama3-8b - single-node.training-llama3-8b
  • single-node.training-nemotronh-8b - single-node.training-nemotronh-8b
Available options:
multi-node.hello-world,
multi-node.iperf-matrix,
multi-node.nccl-all-gather,
multi-node.nccl-all-reduce,
multi-node.nccl-all-reduce-multi-rack,
multi-node.nccl-all-to-all,
multi-node.nvloom,
multi-node.pairwise-net-gpu.bw,
multi-node.pairwise-net-gpu.lat,
multi-node.pairwise-net.bw,
multi-node.pairwise-net.lat,
multi-node.s3-elbencho,
multi-node.storage-elbencho,
multi-node.training-gpt-oss-120b,
multi-node.training-llama3-1-405b,
multi-node.training-llama3-70b,
multi-node.training-nemotron-24x2h,
multi-node.training-nemotron-checkpoint,
multi-node.training-nemotron-h,
multi-node.training-nemotron-h-multi-rack,
multi-node.training-qwen3-235b,
single-node.babelstream,
single-node.dcgmi-diag,
single-node.gpu-fryer,
single-node.hello-world,
single-node.hpl-cpu,
single-node.hpl-gpu,
single-node.lmbench-lat-mem-rd,
single-node.memtester,
single-node.nccl-all-gather,
single-node.nccl-all-reduce,
single-node.nccl-all-reduce-loopback,
single-node.nccl-all-to-all,
single-node.node-health-check,
single-node.nvme-fio,
single-node.nvme-self-test,
single-node.storage-elbencho,
single-node.stream,
single-node.stress-ng-cpu,
single-node.training-llama3-8b,
single-node.training-nemotronh-8b
hostlist
string
required
read-only

Compressed hostlist derived from the job's associated device names

chad_sop
object | null
required

The CHAD SOP recipe that dispatched this job; null when the job was not dispatched by CHAD.

Serializer for job links.

created_at
string<date-time>
required
read-only
updated_at
string<date-time>
required
read-only
parameters
any
required
max_attempts_override
integer | null
required
read-only

Per-job override for Temporal activity retry budgets. NULL uses the worker's ActivityRetryConfigs defaults; 1 fails fast (no retries) for OpenStack debugging. Must be >= 1 — Temporal treats maximum_attempts=0 as unlimited retries.

source_test_execution
string<uuid> | null
required
read-only

Set when this job was created via a single-test re-run; points to the source execution.

devices
object[]
read-only

Per-device name + physical location (rack, U, networking pod) for the job's devices, ordered by name — a slim summary the UI aggregates into rack/pod chips. Carried by the jobs list only; omitted from responses that do not project it. The full device objects are at links.devices.

device_count
integer
read-only

Number of devices the job runs on. A convenience projection of the same set devices lists and hostlist compresses, so all three always agree. Carried by the jobs list only.

failed_device_count
integer
read-only

Number of the job's devices that failed burn-in evaluation, counting each device once however many of the job's tests it failed. Sourced from the evaluation outcome of the job's test executions, so it reflects the threshold verdict rather than the Temporal result: a burn-in job whose devices all report completed still counts them here when their metrics breached thresholds. A test that has not been evaluated yet is not counted, and a job that runs no burn-in tests reports 0 — read unevaluated_device_count to tell those two apart. A failing multi-device test implicates every device in its cohort, so one bad device in a collective run counts the whole cohort. Counts debug-mode and stale-marked evidence too, matching what the test-executions list returns for the job. Carried by the jobs list only.

unevaluated_device_count
integer
read-only

Number of the job's devices whose burn-in evidence finished but has never been evaluated, so failed_device_count cannot speak for them. Non-zero means this row's failure count is incomplete rather than clean: the test-executions list evaluates these rows on read, so it can show a failure the count does not. Counted once per device, and 0 for a job that runs no burn-in tests. Carried by the jobs list only.

name
string
Maximum string length: 50
Pattern: ^[-a-zA-Z0-9_]+$
status
enum<string>
  • pending - Pending
  • running - Running
  • cancellation_requested - Cancellation Requested
  • completed - Completed
  • failed - Failed
  • partially_failed - Partially Failed
  • cancelled - Cancelled
  • terminated - Terminated
  • superseded - Superseded
  • timed_out - Timed Out
Available options:
pending,
running,
cancellation_requested,
completed,
failed,
partially_failed,
cancelled,
terminated,
superseded,
timed_out
started_at
string<date-time> | null
completed_at
string<date-time> | null
temporal_workflow_id
string | null
Maximum string length: 255