Instant Rollback
Last updated on May 21, 2026
Instant rollback re-pins every production Station to a previously built Deployment. There is no rebuild: the active pointer flips, and stations pick up the change between Runs.
What changes
The table below shows exactly what rollback touches and what it leaves alone.
| Rolls back | Does not |
|---|---|
| Active deployment on every production station for this procedure. | Runs already uploaded. They keep their original deployment ID. |
| The procedure version operators see. | Git history. |
| Auto-push. It pauses until you resume it or promote a new deployment. | Other procedures on the same stations. Rollback is per-procedure. |
Rollback does not delete the bad deployment. It stays in the registry and can be re-pinned.
Roll back
Follow these steps to roll back from the dashboard.
Open the procedure and go to Deployments.
Click the active production deployment and select Roll back.
Pick the deployment to return to. Eligible targets are any deployment previously pinned to a production station. Preview deployments and failed builds are not eligible.
Confirm. Stations pick up the change between runs.
Auto-push pauses after a rollback. It resumes on the next successful promotion or when you toggle it manually.
From the API
You can also trigger a rollback programmatically with the REST API or the Python SDK.
curl -X POST https://tofupilot.app/api/v2/procedures/$PROCEDURE_ID/rollback \
-H "Authorization: Bearer $TOFUPILOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"deployment_id": "dep_abc123"}'The same call from the Python SDK looks like this.
from tofupilot.v2 import TofuPilot
client = TofuPilot()
client.procedure.rollback(
procedure_id="proc_xyz789",
deployment_id="dep_abc123",
)How is this guide?