Runs
One run of a task, start to finish: what each status means, what you can do with a run, and why one lands on Blockers.
What a run is
A task is a definition, and it never runs. A run is one pass of one version of it: an input, a member doing the work, the tool calls it made, its cost, and how it ended. Runs in the portal lists every run; Executions groups the runs that handed work to each other (see Executions).
A run keeps the version of the task it started on. Publishing a new version while it runs changes nothing for it.
Statuses
| Status | What it means |
|---|---|
pending |
Waiting for its turn, holding nothing: a successor, retry or recovery whose task or member is busy, or a successor with a delay that has not passed. It is queued when the task and member are free. |
queued |
Ready to start. It starts when there is room under your concurrent-run limits. |
running |
The member is working: calling the model and its tools. |
waiting_on_gate |
Stopped before a gated call, or at a question, until you decide. See Gates. |
paused_spend |
Held before it starts because a spend cap was reached. It is queued again when you raise a day cap or turn spend limits off. See Spend and models. |
blocked |
Parked for a reason outside the task, such as a refused credential or a provider outage, or because it needs a person. See Blocked runs. |
succeeded |
Finished. It may have named an outcome. |
failed |
Finished with a failure that belongs to the task, with a reason. |
cancelled |
Stopped: by a person, by a rejected gate, or by a decision that waited too long. |
skipped_overlap |
A scheduled or manual start that found the task busy, or every member holding its role busy. It never ran. It is kept for 24 hours. |
A run at a gate holds neither its task nor its member: while it waits for you, other work can start.
How many run at once
A task has one run under way at a time, and so does a member. A run waiting at a gate does not count.
Across the enterprise, Concurrent runs on Enterprise sets how many runs may be running at once, 1 unless
you change it. A team can have its own, lower limit. A run over the limit stays queued until a slot frees.
The run page
A run's page shows:
- the task and version it ran (and whether that is still the current version), its execution and the links the work produced, and its cost, top right;
- what came before it and what it hands to next, including successors that are waiting, delayed, or were not started and why;
- its status and how long it ran;
- Run events, newest first: every step, tool call and decision, each with its details. A run that failed, was blocked or was skipped says why at the top;
- any gate waiting on you, with its decision buttons in place.
Show log opens the run's full record. The page updates every few seconds while you are looking at it.
What you can do with a run
| Action | On | What it does |
|---|---|---|
| Cancel | A run that is pending, queued, running, waiting, paused or blocked | Stops it. A gated call it was waiting on never runs, and it starts no successors. |
| Retry as new run | A run that has finished, was skipped, or is blocked | Starts a new run with the same input, on the task's current version, linked to the old one. It starts fresh: it does not carry on the old run's conversation. If the task or member is busy, it waits as pending. A blocked run you retry is cancelled. |
| Clear | A failed run, or a pipeline that stopped, on Blockers | Takes it off Blockers. The run and its history stay on Runs, unchanged. |
Clear all on Blockers clears every failed run in one go.
A run cancelled while it waited on a gate or a question leaves a note on Blockers that a decision was stopped, so the work is not silently dropped.
Blocked runs
A failure the task could not have prevented does not fail the run. It blocks it: the run holds nothing, starts no successors, and resumes as a continuation, carrying on the same conversation, when the cause clears.
| Cause | Examples | When it resumes |
|---|---|---|
| Credentials | A model key or tool connection refused or missing; no model connected | As soon as a credential in your enterprise changes, and hourly |
| Provider outage | A timeout, a rate limit, a 5xx from the model or a tool, a tool server that cannot be reached | Automatically after 2, 5, 15 and 30 minutes, or as soon as credentials change. After an hour it stops trying and waits for you |
| Model | The chosen model does not exist or is unavailable | When the model answers again; after an hour it waits for you |
| Capacity | A Claude seat's usage limit is used up | When the limit resets |
| Definition | The task, as written, cannot run | After you edit the task |
| A decision | A loop cap, a question that timed out, a decision that was cancelled | Never by itself: a person retries or cancels it |
On Blockers, Retry starts a new run and Cancel closes the blocked one.
A tool call that fails is retried a few times first. What happens then depends on the failure: an outage blocks the run; an error in the call itself (a bad argument, a refusal from the tool) goes back to the model to correct.
Failed runs
A run fails when the failure is the task's own. Some of the reasons you will see:
| Reason | What happened |
|---|---|
run_stalled |
The run recorded nothing for 30 minutes and was stopped. |
llm_max_steps |
The run used every step it is allowed without finishing. |
tool_not_on_task |
The model called a tool the task does not list. |
unresolved_tool_errors |
The model finished while a tool call it needed had never gone through, even after one chance to correct it. |
A failed run starts its successors on failed and terminal, if the task has any.
When the worker is lost
If the process running a run disappears (a restart, a crash, a deploy), the run is marked failed with the reason
worker_lost and one continuation starts, carrying on the same conversation from its last completed step. Edits
it had not pushed are gone, and a call that was in flight when the worker went may or may not have landed. If the
continuation is lost too, it is blocked, as an outage.
Blockers
Blockers is the list of what cannot move without someone:
| Section | What is in it |
|---|---|
| No LLM capacity | A model connection whose quota is used up. |
| Models unavailable | A model a tier points at that the provider says does not exist. |
| Task definitions | Active tasks that will not run cleanly as written. |
| Team health | A team with no lead, or no metric. |
| Needs a decision (loop cap) | Work that reached its loop cap. |
| Pipeline stopped | Work whose newest run failed, or ended on an outcome nothing routes, in the last 14 days. |
| Blocked (resumes automatically) | Blocked runs, each with its cause. Most resume by themselves; the table above says which wait for you. |
| Failed | Failed runs nobody has cleared or retried. |
| Stalled | Runs that have recorded nothing for 30 minutes. |
| Paused spend | Runs paused by a spend cap, with Raise cap. |
A failed run leaves Failed when you clear it, or when a retry, recovery or resume starts from it. Gates are not on Blockers; they are on Gates. Self-improvement proposals are not either; they are on Self-Improvement.
Over the API
With an API token:
| Call | Scope | What it does |
|---|---|---|
POST /v1/tasks/{id}/runs |
tasks:write |
Start a run, with its input as the body. 409 if the task, or every member holding its role, is busy. |
GET /v1/runs |
runs:read |
Runs, filtered by taskId, taskVersionId or status. |
GET /v1/runs/{id} |
runs:read |
One run and its events. |
GET /v1/runs/{id}/log |
runs:read |
Its full log, once stored. |
POST /v1/runs/{id}/retry |
runs:write |
Retry as a new run. |
POST /v1/runs/{id}/cancel |
runs:write |
Cancel it. |
POST /v1/runs/{id}/clear |
runs:write |
Clear it from Blockers. |
GET /v1/blockers |
blockers:read |
Everything on Blockers. |