before: pinned={'zipline': 'ghcr.io/diced/zipline:4.6.1', 'zipline-postgres': 'postgres:16-alpine'}
drill: f85ef9d DRILL zipline: {'zipline': 'ghcr.io/diced/zipline:4.8.0'} (box proof)
  phase +0.0s backing-up | err=None
  phase +19.5s safety-dump | err=None
  phase +21.5s pulling | err=None
  phase +67.7s copying | err=None
  phase +81.0s starting | err=None
  phase +87.1s verifying | err=None
  phase +177.4s undoing | err=None
  phase +197.9s undone | err=None
2026/09/30 16:25:47 update.go:536: [INFO] [stacks] update zipline: accepted — guarded update started
2026/09/30 16:25:47 update.go:1365: [INFO] [stacks] update zipline: phase checking
2026/09/30 16:25:47 update.go:786: [INFO] [stacks] update zipline: ladder — the last step (1 of 1) — the catalog's current definition
2026/09/30 16:25:47 update.go:816: [INFO] [stacks] update zipline: no usable copy on any tier — younger than 24h0m0s and not older than this install's deploy (2026-09-30T16:19:20Z) (found: none) — backing up first
2026/09/30 16:25:47 update.go:1365: [INFO] [stacks] update zipline: phase backing-up
2026/09/30 16:26:06 update.go:831: [INFO] [stacks] update zipline: precondition met after the backup — Tier 2 (second drive) copy from 2026-09-30T16:25:47Z
2026/09/30 16:26:06 update.go:1365: [INFO] [stacks] update zipline: phase safety-dump
2026/09/30 16:26:06 update.go:846: [INFO] [stacks] update zipline: safety dump done (1 file(s)) [/mnt/sys_drive/felhom-data/backups/primary/zipline/db-dumps/pre-restore-20260930T162606Z-zipline-postgres.sql]
2026/09/30 16:26:07 undo.go:287: [INFO] [stacks] update zipline: the undo copy will hold 3 named volume(s), 46.6 MiB
2026/09/30 16:26:07 update.go:1365: [INFO] [stacks] update zipline: phase pinning
2026/09/30 16:26:07 pin.go:373: [INFO] [stacks] update zipline: pin advanced to /opt/docker/felhom-controller/data/catalog-cache/templates/zipline/docker-compose.yml (zipline=ghcr.io/diced/zipline:4.8.0, zipline-postgres=postgres:16-alpine)
2026/09/30 16:26:07 update.go:1365: [INFO] [stacks] update zipline: phase pulling
2026/09/30 16:26:54 update.go:1365: [INFO] [stacks] update zipline: phase copying
2026/09/30 16:27:05 update.go:1365: [INFO] [stacks] update zipline: phase copying
2026/09/30 16:27:06 undo.go:437: [INFO] [stacks] update zipline: copied zipline_zipline_postgres_data → zipline_zipline_postgres_data.pre-update-20260930T162705Z in 778ms
2026/09/30 16:27:06 update.go:1365: [INFO] [stacks] update zipline: phase copying
2026/09/30 16:27:06 undo.go:437: [INFO] [stacks] update zipline: copied zipline_zipline_public → zipline_zipline_public.pre-update-20260930T162705Z in 443ms
2026/09/30 16:27:06 update.go:1365: [INFO] [stacks] update zipline: phase copying
2026/09/30 16:27:07 undo.go:437: [INFO] [stacks] update zipline: copied zipline_zipline_uploads → zipline_zipline_uploads.pre-update-20260930T162705Z in 441ms
2026/09/30 16:27:07 update.go:1365: [INFO] [stacks] update zipline: phase starting
2026/09/30 16:27:13 update.go:1365: [INFO] [stacks] update zipline: phase verifying
2026/09/30 16:28:44 update.go:1066: [ERROR] [stacks] update zipline FAILED after the new version was started: not healthy: not healthy within 1m30s (last: state restarting)
2026/09/30 16:28:44 update.go:1058: [INFO] [stacks] update zipline: kept 22280 bytes of the app's own log at /opt/docker/stacks/zipline/hold-logs/20260930T162844Z/compose-logs.txt before stopping it (R-621)
2026/09/30 16:28:44 update.go:1365: [INFO] [stacks] update zipline: phase undoing
2026/09/30 16:28:44 undo.go:515: [WARN] [stacks] update zipline: UNDO — putting back the previous version and its 3 volume copy(ies) (reason: not healthy: not healthy within 1m30s (last: state restarting))
2026/09/30 16:29:03 unattended.go:511: [INFO] [stacks] update zipline: step zipline=ghcr.io/diced/zipline:4.8.0, zipline-postgres=postgres:16-alpine recorded as undone — the automatic leg will not press it again until the catalog's ladder changes (ladder 6e88ecee0cc09966)
2026/09/30 16:29:04 undo.go:640: [INFO] [stacks] update zipline: event app_update_undone
2026/09/30 16:29:04 undo.go:568: [INFO] [stacks] update zipline: UNDONE in 20s — the previous version is running on the data from before the update (the app's health check passed)

RESULT final_phase=undone after={'zipline': 'ghcr.io/diced/zipline:4.6.1', 'zipline-postgres': 'postgres:16-alpine'} seed_after=False verdict=failed (197.9 s)
