Pause an orchestration run
POST/api/v1/orchestration-runs/:orchestration_run_id/pause
Parks a run in flight as awaiting_input at its next checkpoint, with a required_action of type paused naming the pause as operator-initiated rather than a node's. Unlike cancel, the run keeps its last checkpoint and resume-orchestration-run re-drives it from there — so work already done is deferred rather than discarded.
A queued or sleeping run is parked immediately (a sleeping run keeps the wake it was due, and resuming hands it back to the scheduler at that instant). A running run keeps running until the round in flight reaches its checkpoint, so the response may still read running while pause_requested_at is set. A run already parked on a human, webhook or approval node keeps that node's required_action; the pause is still recorded, which is what makes submit-human-input refuse until the run is resumed.
The pause fans out to the run's loop / sub_orchestration descendants — each parks at its own next checkpoint — because otherwise a parent's pause would bound nothing. Resuming does not fan out: each parked descendant is resumed by its own id.
Idempotent: pausing an already-paused run answers with it unchanged.
Request
Responses
- 200
- 400
- 401
- 403
- 404
- 409
- 413
- 429
- 500
Paused run
Invalid request — a query parameter or body field the operation does not declare, or a value that fails validation
Unauthorized
Forbidden
Not found
Run has already settled
REQUEST_REJECTED — the request body is over the size the body parser accepts
QUOTA_EXCEEDED — a requests quota on the calling API key or its project is spent for the window; Retry-After says when it reopens
Response Headers
Seconds until the quota window admits a request again
Unexpected server error — INTERNAL_ERROR, with the raw message never forwarded