---
title: "Roll back a jail snapshot"
method: POST
path: "/jail/{ctid}/snapshots/{snapshotId}/rollback"
tags: ["Jail"]
---

# Roll back a jail snapshot

`POST /jail/{ctid}/snapshots/{snapshotId}/rollback`

Stop the jail if needed, recursively roll its ZFS dataset tree back while destroying newer snapshots, restore saved configuration, and attempt to restore the prior running state

## Path parameters

- `ctid` integer, required
- `snapshotId` integer, required

## Response `200`

Success

- GithubComAlchemillahqSylveInternalAPIResponseGithubComAlchemillahqSylveInternalServicesJailJailSnapshotRollbackResult
  - `data` GithubComAlchemillahqSylveInternalServicesJailJailSnapshotRollbackResult
    - `restarted` boolean
    - `warnings` string[]
    - `wasRunning` boolean
  - `error` string
  - `message` string
  - `status` string

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `500` — Internal Server Error
- `503` — Service Unavailable

## Changes

- **2026-08-12** `9a5026bf9057` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/alchemillahq/apis/sylve-api/changes/jail/:ctid/snapshots/:snapshotId/rollback/post.md)

---

[API](https://skmtc.dev/alchemillahq/apis/sylve-api.md) · [All operations](https://skmtc.dev/alchemillahq/apis/sylve-api/llms.txt) · [OpenAPI document](https://skmtc.dev/alchemillahq/apis/sylve-api/revisions/f1c5f8388fd6?raw)
