=== Scenario E — the pull fails (the catalog names a tag that does not exist) — 2026-09-13T10:11:03Z === --- BEFORE --- { "state": "running", "updating": false, "update_phase": null, "update_phase_label": null, "update_error": null, "hold_reason": null, "pinned_images": { "uptime-kuma": "louislam/uptime-kuma:2.4.0" }, "installed_images": { "uptime-kuma": { "ref": "louislam/uptime-kuma:2.4.0", "digest": "sha256:91e963bfda569ba115206e843febb446f473ab525add4e08b2b9e3beffa16985", "at": "2026-09-13T10:08:19Z" } }, "catalog_images": { "uptime-kuma": "louislam/uptime-kuma:2.4.999" } } louislam/uptime-kuma:2.4.0 Up About a minute (healthy) --- POST /api/stacks/uptime-kuma/update at 2026-09-13T10:11:04Z --- HTTP 202 {"ok":true,"data":{"accepted":true,"completed":false},"message":"Frissítés elindult – az állapot a kártyán követhető"} 10:11:04 U safety-dump 10:11:06 - failed --- AFTER 2026-09-13T10:11:06Z --- { "state": "running", "updating": false, "update_phase": "failed", "update_phase_label": "A frissítés nem sikerült", "update_error": "Az új verzió letöltése nem sikerült, ezért a frissítés elmaradt. Az alkalmazás a korábbi verzióval fut tovább.", "hold_reason": null, "pinned_images": { "uptime-kuma": "louislam/uptime-kuma:2.4.0" }, "installed_images": { "uptime-kuma": { "ref": "louislam/uptime-kuma:2.4.0", "digest": "sha256:91e963bfda569ba115206e843febb446f473ab525add4e08b2b9e3beffa16985", "at": "2026-09-13T10:08:19Z" } }, "catalog_images": { "uptime-kuma": "louislam/uptime-kuma:2.4.999" } } louislam/uptime-kuma:2.4.0 Up About a minute (healthy) --- the controller, verbatim (update + backup lines since 2026-09-13T10:11:04Z) --- 2026/09/13 10:11:04 router.go:567: [INFO] [api] update requested for stack: uptime-kuma 2026/09/13 10:11:04 update.go:278: [INFO] [stacks] update uptime-kuma: accepted — guarded update started 2026/09/13 10:11:04 update.go:701: [INFO] [stacks] update uptime-kuma: phase checking 2026/09/13 10:11:04 update.go:409: [INFO] [stacks] update uptime-kuma: precondition met — proven copy from 2026-09-13T10:09:51Z (1m0s old, limit 24h0m0s) 2026/09/13 10:11:04 update.go:701: [INFO] [stacks] update uptime-kuma: phase safety-dump 2026/09/13 10:11:04 update_guard.go:239: [INFO] [backup] update safety dump for uptime-kuma: the app has no database — nothing to copy (no-op) 2026/09/13 10:11:04 update.go:423: [INFO] [stacks] update uptime-kuma: safety dump done (0 file(s)) [] 2026/09/13 10:11:04 update.go:701: [INFO] [stacks] update uptime-kuma: phase pinning 2026/09/13 10:11:04 pin.go:362: [INFO] [stacks] update uptime-kuma: pin advanced to the catalog's current definition (uptime-kuma=louislam/uptime-kuma:2.4.999) 2026/09/13 10:11:04 update.go:701: [INFO] [stacks] update uptime-kuma: phase pulling 2026/09/13 10:11:06 update.go:551: [INFO] [stacks] update uptime-kuma: pin and definition PUT BACK to the pre-update version (uptime-kuma=louislam/uptime-kuma:2.4.0) 2026/09/13 10:11:06 update.go:469: [ERROR] [stacks] update uptime-kuma: pull failed — pin and definition PUT BACK; the app was not touched. Docker said: exit code 1 2026/09/13 10:11:06 update.go:373: [ERROR] [stacks] update uptime-kuma FAILED in phase pulling after 1.411s — nothing was moved: pull failed: exit code 1 --- the stacks page card (badge / hold / phase fragments) --- 1 Frissítés 1 Frissítés gombot.">Frissítés elérhető â 1 stackAction(event, 'uptime-kuma', 'restart') 1 stackAction(event, 'uptime-kuma', 'stop') 1 stackAction(event, 'uptime-kuma', 'update') === Scenario E — the pull fails (the catalog names a tag that does not exist) done === --- AFTER: the app untouched, the pin and definition put back --- container: cb541381d93ef9a7a9d19f06c31e6b75d74cea70f3d11c0da8f9cd5a51cdd4fb louislam/uptime-kuma:2.4.0 started=2026-09-13T10:09:50.950051403Z live: image: louislam/uptime-kuma:2.4.0 applied: image: louislam/uptime-kuma:2.4.0 pre-update-copies: 0 --- the pull's own error, verbatim, from the log --- 2026/09/13 10:11:06 manager.go:1394: [ERROR] [stacks] stderr: Image louislam/uptime-kuma:2.4.999 Pulling 2026/09/13 10:11:06 update.go:551: [INFO] [stacks] update uptime-kuma: pin and definition PUT BACK to the pre-update version (uptime-kuma=louislam/uptime-kuma:2.4.0) 2026/09/13 10:11:06 update.go:469: [ERROR] [stacks] update uptime-kuma: pull failed — pin and definition PUT BACK; the app was not touched. Docker said: exit code 1 stderr: Image louislam/uptime-kuma:2.4.999 Pulling 2026/09/13 10:11:06 update.go:373: [ERROR] [stacks] update uptime-kuma FAILED in phase pulling after 1.411s — nothing was moved: pull failed: exit code 1 stderr: Image louislam/uptime-kuma:2.4.999 Pulling