Skip to content

Resume Rollout

POST
/api/rollouts/{rollout_id}/resume
curl --request POST \
--url 'https://example.com/api/rollouts/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/resume?organization_id=2489E9AD-2EE2-8E00-8EC9-32D5F69181C0' \
--header 'Authorization: Bearer <token>'

Operator-initiated resume. Only valid from PAUSED — the advancer loop NEVER auto-resumes a paused group (design 3B), so this is the only way a paused rollout continues.

Fable review R2: resume does NOT just flip state back to ACTIVE on the same batch — that batch is already all-terminal and already over max_failure_percent (that is WHY it paused), so the very next advancer tick would immediately re-evaluate it and re-pause, and resume could never make progress. advance_past_paused_batch moves past it unconditionally (the operator has accepted those failures by resuming): activates the next batch, or completes the group if the paused batch was the last one. updated_at is reset (inside that call) so a batch_interval_s-based advance gets a fresh interval window from the moment of resume, not from whenever the new batch’s predecessor activated.

rollout_id
required
Rollout Id
string format: uuid
organization_id
required
Organization Id
string format: uuid

Successful Response

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
ctx
Context
object
input
Input
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
Example generated
{
"detail": [
{
"ctx": {},
"input": "example",
"loc": [
"example"
],
"msg": "example",
"type": "example"
}
]
}