The safe updater is designed so that a failed update never leaves you broken. If anything goes wrong, you end up back on the version you were already running.
What actually happened
Every update runs in a fixed order: take a backup → pull the new (signature-verified) image → run migrations → run a health check. If the health check fails, the updater rolls back automatically — it restores the previous image and the database backup it took at the start. So a "failed update" almost always means you're safely on your old version, not down.
Confirm where you are
Open Settings → Updates to see your current version, and System Health to confirm all services are green. If they are, you're running fine — you just haven't moved to the new version yet.
Find and fix the cause, then retry
The usual culprits are environmental, not the update itself:
- Not enough free disk or RAM — the most common cause. Free up space or add swap, then retry. See Check server health before you update.
- A stopped service (database or queue) — restart with
docker compose restart, then check the logs:docker compose logs app.
Once the cause is resolved, run the update again from Settings → Updates.
Still stuck?
Capture your version, the System Health readout, and docker compose logs app, and open a ticket. If you're on the beta channel and hit a snag, switching back to the stable channel is a safe move.