{ "A": { "scenario": "A (R-630)", "app": "paperless-ngx", "before": { "state": "running", "front_door": "302", "containers": [ "paperless-webserver|Up About a minute (healthy)", "paperless-redis|Up About a minute (healthy)", "paperless-postgres|Up About a minute (healthy)" ] }, "phases": { "accepted": true, "http": "202", "phases": [ { "t": 0.0, "phase": "backing-up", "label": "Biztonsági mentés készül a frissítés előtt…", "updating": true, "error": null, "hold": null }, { "t": 21.5, "phase": "pulling", "label": "Új verzió letöltése…", "updating": true, "error": null, "hold": null }, { "t": 22.6, "phase": "starting", "label": "Indítás az új verzióval…", "updating": true, "error": null, "hold": null }, { "t": 23.6, "phase": "verifying", "label": "Működés ellenőrzése…", "updating": true, "error": null, "hold": null }, { "t": 53.4, "phase": "done", "label": "Frissítve", "updating": false, "error": null, "hold": null } ], "duration_s": 53.4, "final_phase": "done", "update_error": null, "hold_reason": null, "state": "running" }, "wall_s": 53.7, "after": { "state": "running", "front_door": "302" }, "controller_says": "2026/09/22 19:33:55 update.go:996: [INFO] [stacks] update paperless-ngx: phase checking\n2026/09/22 19:33:55 update.go:996: [INFO] [stacks] update paperless-ngx: phase backing-up\n2026/09/22 19:34:16 update.go:996: [INFO] [stacks] update paperless-ngx: phase safety-dump\n2026/09/22 19:34:16 update.go:996: [INFO] [stacks] update paperless-ngx: phase pinning\n2026/09/22 19:34:16 update.go:996: [INFO] [stacks] update paperless-ngx: phase pulling\n2026/09/22 19:34:17 update.go:996: [INFO] [stacks] update paperless-ngx: phase starting\n2026/09/22 19:34:18 update.go:996: [INFO] [stacks] update paperless-ngx: phase verifying\n2026/09/22 19:34:48 healthprobe.go:181: [DEBUG] Health probe paperless-ngx: HTTP GET :8000/ → 302 (4ms)" }, "F": { "scenario": "F (R-614)", "app": "paperless-ngx", "phase_before_remove": "done", "after_remove_deployed": false, "phase_after_redeploy": null, "verdict": "clean" }, "B": { "scenario": "B (R-633/R-626)", "app": "privatebin", "snapshots": 1, "restore_started": "{'ok': True, 'snapshot_id': 'helyi', 'snapshots': [{'time': '2026-09-22T19:41:55Z', 'short_id': 'helyi', 'tier': 1, 'drive_label': 'Belső SSD (rendszer)'}], 'http': 'HTTP/2 302', 'location': ['locatio", "remove_during_restore": { "http": "409", "answer": { "ok": false, "error": "stack \"privatebin\" is still running — stop it first before removing" } }, "refused_as_expected": true, "remove_after_restore": { "http": "200", "verified": true, "reappeared": null }, "containers_60s_later": "" }, "C": { "scenario": "C (R-634)", "app": "sparkyfitness", "setup": "total 28\ndrwxr-xr-x 2 root root 4096 Sep 22 19:43 .\ndrwxr-xr-x 57 root root 4096 Sep 13 20:22 ..\n-rw-r--r-- 1 root root 4737 Sep 20 14:32 .felhom.yml\n-rw-r--r-- 1 root root 41 Sep 22 19:43 app.yaml\n-rw-r--r-- 1 root root 4936 Sep 22 19:43 docker-compose.yml", "before": { "deployed": false, "state": "not_deployed" }, "remove": { "http": "200", "answer": "{'ok': True, 'data': {'removed': 'sparkyfitness', 'volumes_removed': [], 'hdd_paths_removed': [], 'hdd_paths_preserved': [], 'backup_paths_removed': ['/mnt/sys_drive/felhom-data/backups/primary/sparkyfitness (48K)'], 'verified': True}, 'message': 'Stack sparkyfitness removed'}" }, "accepted": true, "leftovers": "NONE" }, "B2": { "scenario": "B2 (R-633) — the BUSY guard, reached deliberately", "app": "privatebin", "state_before": "stopped", "backup_started": { "http": "200", "answer": "{'ok': True, 'message': 'Mentés elindítva'}" }, "remove_during_backup": { "http": "409", "answer": { "ok": false, "error": "Az alkalmazáson mentés vagy visszaállítás fut. Várd meg, amíg befejeződik." } }, "refused_by_busy_guard": true, "controller_says": "2026/09/22 19:49:46 delete.go:557: [ERROR] [stacks] RemoveStack privatebin REFUSED (busy): a backup or restore is running (single-flight held)\n2026/09/22 19:51:32 delete.go:557: [ERROR] [stacks] RemoveStack privatebin REFUSED (busy): a backup or restore is running (single-flight held)" } }