Deploy

Rollback

Rollback is the process of returning to a previous version when a publication causes an error. On Zenifra, the strategy depends on the project source: GitHub or OCI image.

Before you need to revert

Prepare the project for rollback before production:

  • keep identifiable tags or commits
  • expose a /health route
  • log version or commit
  • avoid latest for OCI images in production
  • document variables required by each release

GitHub projects

For GitHub projects with auto-deploy, the most predictable path is returning the configured branch to a known-good state.

Common options:

  1. create a revert commit
  2. merge a quick fix
  3. restore the branch to a stable release according to the team's Git process

After pushing, follow build logs and validate the application on the public URL.

OCI projects

For OCI projects, rollback usually means changing the image to a previous tag.

StateImage
problematic versionghcr.io/acme/api:1.4.3
rollbackghcr.io/acme/api:1.4.2

After changing the image, validate logs, metrics, /health, and the application's main behavior.

Database and migrations

Application rollback does not automatically undo database changes.

Before publishing changes with migrations:

  • test migrations in a separate environment
  • prefer migrations compatible with two application versions
  • plan how to revert or correct data
  • avoid code deploys that immediately depend on destructive migrations

Post-rollback validation

After reverting:

  • confirm project status
  • open the public URL
  • check application logs
  • review metrics and HTTP requests
  • validate database, login, checkout, webhooks, or critical flows
  • communicate internally which version was restored

Next steps

FAQ

Does Zenifra perform automatic rollback?

Automatic rollback is not currently a documented capability. Plan operational rollback through Git or image tags.

Does rollback solve database errors?

Not always. Schema and data changes need their own plan.

How do I reduce risk?

Use a stable branch, immutable tags, health checks, clear logs, and the production checklist before publishing.