---
title: "Rollback"
method: POST
path: "/models/release-decisions/{decision_id}/rollback"
tags: ["models"]
---

# Rollback

`POST /models/release-decisions/{decision_id}/rollback`

## Request

- Base URL: `https://api.os3robotics.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.os3robotics.com/models/release-decisions/{decision_id}/rollback`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Rolls the decision's release back, with your reason: the task goes back to what served
it before. An owner's or admin's, as the click. 409 unless the decision's release is fully
rolled out.

## Path parameters

- `decision_id` string, uuid, required

## Request body

- RollbackIn
  - `reason` string, required

## Response `200`

Successful Response

- ReleaseDecision
  - `id` string, uuid, required
  - `workspace_id` string, uuid, required
  - `kind` 'llm_specialist' | 'robot_policy', required
  - `candidate_ref` string, required
  - `model_version_id` string, uuid, nullable, required
  - `from_version_id` string, uuid, nullable, required
  - `task` string, nullable, required
  - `claim` 'same_quality' | 'economy' | 'improvement', required
  - `tolerance` number, required
  - `gate` object, required
  - `candidate_eval_id` string, uuid, required
  - `baseline_eval_id` string, uuid, required
  - `safety_eval_id` string, uuid, nullable, required
  - `runtime_ref` string, nullable, required
  - `suite_ref` string, nullable, required
  - `suite_sha256` string, nullable, required
  - `passed` boolean, required
  - `verdict` string, required
  - `failed_criteria` string[], required
  - `reasons` object, required
  - `item_flips` object, nullable, required
  - `accuracy` object, nullable, required
  - `canary_percent` integer, required
  - `approved_at` string, date-time, nullable, required
  - `approved_by` string, nullable, required
  - `created_by` string, required
  - `created_at` string, date-time, required
  - `adapter_version_id` string, uuid, nullable
  - `from_adapter_version_id` string, uuid, nullable
  - `general_eval_id` string, uuid, nullable
  - `forgetting` object, nullable
  - `contract_id` string, uuid, nullable
  - `all_in_cost` object, nullable
  - `route_state` string, nullable
  - `task_id` string, nullable
  - `replaced` Reinstated: The release the rolled-back click replaced, which serves the task again.
    - `release_decision_id` string, uuid, required
    - `candidate_ref` string, required
  - `safety_origin` 'os3_run' | 'customer_reported', nullable
  - `canary_traffic` CanaryTraffic: A live canary's traffic since it started, as the canary guard last looked at it. A canary sends a share of its task's subjects to the candidate (a request's subject is its x-os3-subject, else its x-os3-session, else its gateway key), not a share of its requests, so the candidate's share of the requests is what its subjects send.
    - `at` string, date-time, required
    - `candidate_requests` integer, required
    - `incumbent_requests` integer, required
    - `candidate_subjects` integer, nullable, required
    - `incumbent_subjects` integer, nullable, required
    - `share` number, nullable, required
    - `one_subject` boolean, required
  - `thinking_pick` boolean, nullable
  - `keep` number, nullable, required: The quality setting it was decided under (its gate's); null: none (same quality, or a claim declared without one).
  - `stage` string, required: rejected | rolled_back (its canary) | released | awaiting_operator (robot) | canary | awaiting_customer.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/os3robotics/apis/os3-api.md) - [All operations](https://skmtc.dev/os3robotics/apis/os3-api/llms.txt) - [OpenAPI document](https://skmtc.dev/os3robotics/apis/os3-api/revisions/af32cd4f14bb?raw)
