Skip to content

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.

Terminal window
# Container: empty deploymentUuid = roll back to the previous release
curl -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:

Terminal window
# Static: target a specific prior deployment by UUID
curl -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 appsStatic sites
TargetPrevious deploy onlyAny specific prior deployment
deploymentUuidEmpty (project-level)Required (the target version)
MechanismHelm rollback (previous release)Repoint active deployment + CDN pointer
Rebuild?NoNo
Requirement≥ 2 successful deploysThe target deployment still exists

Auth: member (MEMBER+). Body (RollbackInput): { "deploymentUuid": string }. Response: { deploymentUuid }.

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.

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 }.