Skip to content

Rollback

Rollback moves traffic back to a previous healthy immutable deployment. It does not edit artifacts or make failed deployments active.

Rollback targets are inactive deployments that:

  • Belong to the same app.
  • Previously reached a successful active state.
  • Are currently superseded or rolled_back.
  • Still retain an immutable artifact.

The active deployment, failed builds, unhealthy deployments, canceled deployments, building deployments, and deploying deployments are not rollback targets.

Terminal window
beamup --app hello-gleam rollback

Without --to, BeamUp selects the latest eligible target. The CLI submits a rollback operation and polls for up to 60 seconds. It exits successfully only after the target deployment is active.

Plain success output includes:

Rolled back app hello-gleam from deployment <from-deployment-id> to deployment <target-deployment-id>.
URL: https://hello-gleam.beamup.run
Deployment <target-deployment-id> is active; the replaced runtime is draining.

Use a deployment ID from status, deployment history, or the dashboard rollback target list:

Terminal window
beamup --app hello-gleam rollback --to <deployment-id>

--to must be a deployment UUID.

Terminal window
beamup --json --app hello-gleam rollback --to <deployment-id>

JSON returns the app identity and final rollback operation.

  • No active deployment, no previous successful target, and concurrent rollback return conflict errors.
  • A target outside the owned app returns not found without existence detail.
  • A failed, unhealthy, or otherwise ineligible target returns a conflict.
  • Worker restart, health failure, or active-pointer conflict leaves the original active deployment unchanged and stores a safe failure on the rollback operation.
  • If the CLI times out after 60 seconds, run beamup status before retrying and do not start a second rollback blindly.

Rollback during the 30-second drain window can route back to the still-running previous target. Rollback after cleanup starts a fresh runtime from the previous immutable artifact and health-gates it before routing.