Recover from a failed update
Purpose
Section titled “Purpose”Return the Docker runtime to a known-good state while preserving evidence and verified database backups.
Audience
Section titled “Audience”Framework administrators and Docker operators.
Prerequisites
Section titled “Prerequisites”Access to the Compose project, app/updater logs, the previous image tag, the pre-update .emubackup, and the separately stored secret key.
Procedure
Section titled “Procedure”-
Record the update job error, target version, and backup path from System Maintenance or
/data/update-status.json. -
Preserve app and updater logs before recreating a container:
Terminal window docker compose logs --no-color app updater > emuframework-update.log -
Check disk space, GHCR access, Docker socket access, updater token equality, container name, network membership, and the
/datamount. -
Verify whether the updater already restored the previous container and whether it is healthy.
-
If needed, set
EMU_VERSIONto the previous known-good tag, then run:Terminal window docker compose pulldocker compose up -d --force-recreatedocker compose ps -
Verify both SQLite databases and application data before retrying the update.
-
Restore the
.emubackuponly when data verification fails or the release notes explicitly require database rollback. Restore.emu-secret.keyseparately when needed. -
Verify login, Apps, recent records, Designer customizations, SMTP, Scripts/Functions, and System Maintenance diagnostics.
Rolling back the container image does not undo database migrations. Never run the old and new images against the same volume simultaneously, never delete -wal or -shm files while a writer is active, and never use docker compose down -v during recovery.