Fleet queue entry
Included from Basic tier
One dispatch-plane entry as GET /api/fleet/queue (admin token) serves it:
a step the scheduler currently carries — parked ready or held by a live
lease — annotated with its placement verdict. This page is the field
dictionary only; the narrative (where entries come from, the verdict
ladder, the levers, failure modes) lives at opschain docs fleet-queue and
is not repeated here.
The v2 OpenAPI document declares this resource's schema; the resource-field coverage gate holds this page to it.
The response envelope is {"entries": [...], "halted": ..., "quiesced": ..., "quiesced_by": ..., "quiesced_at": ...} — see opschain docs fleet-queue for the envelope fields.
Entry fields
| Field | Type | Meaning | Origin / null semantics |
|---|---|---|---|
run_id | string | The owning run (change or workflow run). | From the queue payload written at enqueue. |
step_id | string | The step this entry dispatches. | Same. |
attempt | int | The attempt number — a retried step re-enters as a new attempt. | Same. |
queue | string | The scheduler's internal dispatch-queue name (default today; reserved for future named queues). | The queue_ready / scheduler_job_leases row. |
ready_at | timestamp | When the entry became (or becomes) eligible — backoff retries park with a future value. | Queue payload. Always present. |
leased | bool | false: parked ready in queue_ready. true: a runner holds the job lease (scheduler_job_leases). | Which table the entry was read from. |
requirement | object | The step's placement demand, resolved once at enqueue (later settings edits never reclassify queued work). Serialized {} when it demands nothing. Sub-fields below. | Queue payload. |
satisfiable | bool | Whether anything can take the entry right now. Always true on leased entries; on ready entries, true exactly when reason is empty. | Computed per read. |
reason | string | Why the entry is not dispatching — the verdict ladder's first match (halt, system quiesce, licence stop, replica quiesce, the pinned-runner verdict, then the placement verdicts). Absent (omitted) when satisfiable, and always absent on leased entries. | Computed per read; strings quoted verbatim in opschain docs fleet-queue. |
pinned_runner | string | The runner this entry's run is pinned to (run-scoped execution); the entry is only ever offered to it. Omitted when unpinned. | The scheduler's scheduler_run_pins row, joined per read. |
run_scoped | bool | Whether the entry's run is run-scoped — one runner, one shared workspace: the run pins to the first runner that takes one of its steps. Omitted when false. | Queue payload, classified at enqueue. |
scope_source | string | Why the run's execution scope resolved as it did: runner.execution_scope override when the setting decided it, else the derivation's deciding fact — derived: actions.rb-backed tree (discovered/catalog change), derived: ruby-lane steps present (a declared tree the creation census found an actions.rb#/mintpress# step in), derived: declarative tree, or derived: workflow runs are never pinned. The actions.rb/ruby-lane values are only applicable to existing MintPress customers and those using the MintPress SDK or the packs:mintpress feature. Omitted when the owning run could not be read at enqueue. | Queue payload, classified at enqueue. |
owner_type | string | The owning work item's kind: change, workflow_run or node_background_task (a task's synthetic job carries the task id as run_id). The owner's id IS run_id. | Resolved per read across the three owning tables in one indexed statement. Omitted — with every other owner field — when run_id matches no owning row this store holds. |
owner_status | string | The owner's current status: a run's engine status (pending/queued/running/waiting/…), or the task's status_code. | Same resolution. Omitted when the owner is unresolved. |
owner_terminal | bool | Whether the owner is already finalised. A parked entry with a finalised owner is an orphan — SweepQueueOrphans / opschain admin queue sweep clears it. | Classified against the owner kind's live set (pending/queued/running/waiting for runs, initializing/running for tasks). Omitted when false or unresolved. |
target_path | string | The owner's target node path. | The change's target node / the run record's target path / the task's asset node. Omitted when the owner is unresolved. |
correlation_id | string | The owner's correlation chain id, computed read-time as coalesce(correlation_id, id) for runs. | Omitted for node background tasks (no chain) and unresolved owners. |
The scheduler's internal QueueEntry also carries a priority; it is
not serialized into this payload.
requirement sub-fields (all omitted when empty)
| Field | Type | Demand |
|---|---|---|
group | string | The runner's group must equal this name. |
groups | string array | The runner's group must be one of this set (the node-path-binding shape). |
labels | string array | Every listed label must be present on the runner. |
executors | string array | Every listed executor kind must be advertised by the runner (the step's own kind is folded in at enqueue). |
selectors | map of string → string array | Group-attribute demands: each key must resolve to a runner-group attribute whose value is in the key's list (equality and in-set only). |
secrets_providers | string array | Every listed secrets provider code must be declared by the runner: the step's secret references route to these runner-resolved providers, resolved once at enqueue from the run's property documents. |
Related pages
opschain docs fleet-queue— the full narrative: enqueue, the verdict ladder with everyreasonstring verbatim, requirement resolution order, levers and failure modes, and the termination / orphan-sweep verbs.opschain docs dispatch— the scheduler behind the queue.opschain docs cli/admin-queue-list— the same entries (typed, via the API v2FleetQueueService) with the owner columns rendered.