Rollbacks
When a deploy goes wrong, you can roll back to a previous version. Rollback never rebuilds — it reuses artifacts that already exist — so it’s fast and safe. How it works depends on the project type.
POST /v1/projects/:name/rollback
Container apps — roll back to the previous deploy
Section titled “Container apps — roll back to the previous deploy”Container images are immutable, and PandaStack keeps every prior release. A container rollback is a Helm-native rollback to the previous deployment — it restores the last-good image and its configuration, with no rebuild.
- It’s project-level: “undo my last deploy.” You don’t pick a specific version — it reverts to the previous release.
- It’s fast (typically ~10 seconds) because the image is already in the registry; nothing is rebuilt.
- It requires at least two successful deployments — there has to be something to go back to. If you’ve only deployed once, there’s nothing to roll back to yet.
In the dashboard, an eligible container project shows a Roll back to previous deploy action.
# Container: empty deploymentUuid = roll back to the previous releasecurl -X POST https://api.pandastack.io/v1/projects/my-app/rollback \ -H "Authorization: Bearer $PANDASTACK_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "deploymentUuid": "" }'Static sites — roll back to a specific version
Section titled “Static sites — roll back to a specific version”A static site’s artifacts persist per version, so you can roll back to any specific earlier deployment — not just the previous one. The rollback flips the active deployment and repoints the CDN to that version’s files in one step, so what serves actually changes. It’s instant and needs no rebuild.
For static projects, the dashboard shows a Rollback action on each prior successful deployment. Pass that deployment’s UUID:
# Static: target a specific prior deployment by UUIDcurl -X POST https://api.pandastack.io/v1/projects/my-site/rollback \ -H "Authorization: Bearer $PANDASTACK_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "deploymentUuid": "d-8f3c2a1e" }'Container vs static, at a glance
Section titled “Container vs static, at a glance”| Container apps | Static sites | |
|---|---|---|
| Target | Previous deploy only | Any specific prior deployment |
deploymentUuid | Empty (project-level) | Required (the target version) |
| Mechanism | Helm rollback (previous release) | Repoint active deployment + CDN pointer |
| Rebuild? | No | No |
| Requirement | ≥ 2 successful deploys | The target deployment still exists |
Auth: member (MEMBER+). Body (RollbackInput): { "deploymentUuid": string }. Response: { deploymentUuid }.
Rolling forward again
Section titled “Rolling forward again”A rollback is itself recorded as a new deployment, so you can roll back again (container: to the now-previous release) or redeploy your latest commit to move forward.
Functions
Section titled “Functions”Edge functions have their own version-based rollback — see Functions. It targets a specific version number rather than a deployment UUID:
POST /v1/functions/:name/rollback — body { "version": number }.
Related
Section titled “Related”- Build & buildpacks — the deploy backbone
- Container apps · Static sites
- Logs — check application logs before and after a rollback