  phase +0.0s backing-up | err=None
  phase +14.4s safety-dump | err=None
  phase +16.4s pulling | err=None
  phase +17.5s copying | err=None
  phase +31.8s starting | err=None
  phase +38.0s verifying | err=None
  phase +128.2s undoing | err=None
  phase +165.1s undone | err=None
    adventurelog: readback of the seeded account found=True
backend world-data lines: 1 Latest data already imported.
containers: adventurelog ghcr.io/seanmorley15/adventurelog-backend:v0.12.1 Up 42 seconds (healthy) | adventurelog-postgres postgis/postgis:16-3.5-alpine Up 48 seconds (healthy) | adventurelog-frontend ghcr.io/seanmorley15/adventurelog-frontend:v0.12.1 Up 48 seconds (healthy) | 
2026/09/27 10:46:33 update.go:536: [INFO] [stacks] update adventurelog: accepted — guarded update started
2026/09/27 10:46:33 update.go:1365: [INFO] [stacks] update adventurelog: phase checking
2026/09/27 10:46:33 update.go:786: [INFO] [stacks] update adventurelog: ladder — the last step (1 of 1) — the catalog's current definition
2026/09/27 10:46:33 update.go:816: [INFO] [stacks] update adventurelog: no usable copy on any tier — younger than 24h0m0s and not older than this install's deploy (2026-09-27T10:43:45Z) (found: none) — backing up first
2026/09/27 10:46:33 update.go:1365: [INFO] [stacks] update adventurelog: phase backing-up
2026/09/27 10:46:46 update.go:831: [INFO] [stacks] update adventurelog: precondition met after the backup — Tier 2 (second drive) copy from 2026-09-27T10:46:33Z
2026/09/27 10:46:46 update.go:1365: [INFO] [stacks] update adventurelog: phase safety-dump
2026/09/27 10:46:47 update.go:846: [INFO] [stacks] update adventurelog: safety dump done (1 file(s)) [/mnt/sys_drive/felhom-data/backups/primary/adventurelog/db-dumps/pre-restore-20260927T104647Z-adventurelog-postgres.sql]
2026/09/27 10:46:48 undo.go:287: [INFO] [stacks] update adventurelog: the undo copy will hold 2 named volume(s), 234.1 MiB
2026/09/27 10:46:48 update.go:1365: [INFO] [stacks] update adventurelog: phase pinning
2026/09/27 10:46:48 pin.go:373: [INFO] [stacks] update adventurelog: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/adventurelog/docker-compose.yml (adventurelog=ghcr.io/seanmorley15/adventurelog-backend:v0.13.0, adventurelog-frontend=ghcr.io/seanmorley15/adventurelog-fro
2026/09/27 10:46:48 update.go:1365: [INFO] [stacks] update adventurelog: phase pulling
2026/09/27 10:46:49 update.go:1365: [INFO] [stacks] update adventurelog: phase copying
2026/09/27 10:47:00 update.go:1365: [INFO] [stacks] update adventurelog: phase copying
2026/09/27 10:47:01 undo.go:437: [INFO] [stacks] update adventurelog: copied adventurelog_adventurelog_media → adventurelog_adventurelog_media.pre-update-20260927T104700Z in 1.508s
2026/09/27 10:47:01 update.go:1365: [INFO] [stacks] update adventurelog: phase copying
2026/09/27 10:47:04 undo.go:437: [INFO] [stacks] update adventurelog: copied adventurelog_adventurelog_postgres_data → adventurelog_adventurelog_postgres_data.pre-update-20260927T104700Z in 2.066s
2026/09/27 10:47:04 update.go:1365: [INFO] [stacks] update adventurelog: phase starting
2026/09/27 10:47:10 update.go:1365: [INFO] [stacks] update adventurelog: phase verifying
2026/09/27 10:48:35 update.go:1228: [WARN] [stacks] update adventurelog: no probe container for adventurelog — settling on container state instead; candidates: [adventurelog(starting) adventurelog-frontend(unhealthy) adventurelog-postgres(running)]
2026/09/27 10:48:40 update.go:1066: [ERROR] [stacks] update adventurelog FAILED after the new version was started: not healthy: not healthy within 1m30s (last: unhealthy, and the check resolves to no container)
2026/09/27 10:48:41 update.go:1058: [INFO] [stacks] update adventurelog: kept 3903 bytes of the app's own log at /opt/docker/stacks/adventurelog/hold-logs/20260927T104840Z/compose-logs.txt before stopping it (R-621)
2026/09/27 10:48:41 update.go:1365: [INFO] [stacks] update adventurelog: phase undoing
2026/09/27 10:48:41 undo.go:515: [WARN] [stacks] update adventurelog: UNDO — putting back the previous version and its 2 volume copy(ies) (reason: not healthy: not healthy within 1m30s (last: unhealthy, and the check resolves to no container))
2026/09/27 10:49:17 unattended.go:492: [INFO] [stacks] update adventurelog: step adventurelog=ghcr.io/seanmorley15/adventurelog-backend:v0.13.0, adventurelog-frontend=ghcr.io/seanmorley15/adventurelog-frontend:v0.13.0, adventurelog-postgres=postgis/postgis:16-3.5-alpine recorded as undone — the au
2026/09/27 10:49:17 undo.go:640: [INFO] [stacks] update adventurelog: event app_update_undone
2026/09/27 10:49:17 undo.go:568: [INFO] [stacks] update adventurelog: UNDONE in 36s — the previous version is running on the data from before the update (the app's health check passed)

RESULT final_phase=undone seed_after=True state=running verdict=failed
