### STEP 5 — THE CUT (poller observations, host UTC) 11:04:49.596Z poller armed, waiting for update_phase=pulling 11:04:50.561Z "updating":false 11:04:52.501Z "updating":false 11:04:54.436Z "updating":true "update_phase":"pulling" 11:04:54.439Z >>> CUTTING POWER: pct stop 9202 11:04:58.207Z >>> pct stop returned rc=0 ; status: status: stopped NOTE: pct stop is not instantaneous — it returned 3.8 s after the decision, so the guest had up to ~3.8 s more of life inside the pulling phase. The phase at the moment of the decision is OBSERVED; the phase at the moment the kernel actually froze is INFERRED. ### POST-CRASH ON-DISK STATE, read from the STOPPED guest's rootfs (pct mount, no boot yet) -- update-journal.json -- ABSENT -- app.yaml as the crash left it -- # Auto-generated by felhom-controller — do not edit locked fields manually deployed: true deployed_at: "2026-09-21T10:57:12Z" env: DOMAIN: enkisfelhom.hu SUBDOMAIN: status locked_fields: - DOMAIN - SUBDOMAIN desired_state: running installed_images: uptime-kuma: ref: louislam/uptime-kuma:2.4.0 digest: sha256:91e963bfda569ba115206e843febb446f473ab525add4e08b2b9e3beffa16985 at: "2026-09-21T10:57:45Z" pinned_images: uptime-kuma: louislam/uptime-kuma:2.5.0 -- live docker-compose.yml image line as the crash left it -- image: louislam/uptime-kuma:2.5.0 -- pre-update compose copy, if one was saved -- total 32 drwxr-xr-x 2 100000 100000 4096 Sep 21 13:04 . drwxr-xr-x 57 100000 100000 4096 Sep 13 22:22 .. -rw-r--r-- 1 100000 100000 3318 Sep 21 13:04 .felhom.yml -rw------- 1 100000 100000 506 Sep 21 13:04 app.yaml -rw-r--r-- 1 100000 100000 1597 Sep 21 13:04 applied-compose.yml -rw-r--r-- 1 100000 100000 1597 Sep 21 13:04 docker-compose.yml -rw-r--r-- 1 100000 100000 1597 Sep 21 13:04 pre-update-applied.yml -rw-r--r-- 1 100000 100000 1597 Sep 21 13:04 pre-update-compose.yml (unmounted) ### CORRECTION — the journal read above was WRONG. /var/lib/docker inside the guest is a separate MOUNT (not a symlink — my first wording was wrong too): mp0 mounts a 70G disk at /var/lib/felhom and its /docker subdirectory is bound onto /var/lib/docker (findmnt: /dev/loop1[/docker] /var/lib/docker ext4). 'pct mount 9202' maps only the ROOTFS and does not apply the guest's internal mounts, so /var/lib/docker is an EMPTY MOUNTPOINT STUB from the host. 'test -f' therefore answered ABSENT for a file that exists — a FALSE NEGATIVE, not evidence. From the host the bytes are at /var/lib/felhom/docker/volumes/.../_data/data/. Found by running 'find' over the whole rootfs instead of trusting the one path. Path provenance and positive controls: 12-journal-path-provenance.txt. ### POST-CRASH update-journal.json, read from the STOPPED guest (correct path, still no boot) -rw------- 1 100000 100000 439 Sep 21 13:04 /var/lib/lxc/9202/rootfs/var/lib/felhom/docker/volumes/felhom-controller-data/_data/data/update-journal.json --- contents --- { "updates": { "uptime-kuma": { "phase": "pulling", "started_at": "2026-09-21T11:04:52.924206274Z", "prev_pin": { "uptime-kuma": "louislam/uptime-kuma:2.4.0" }, "prev_compose": "/opt/docker/stacks/uptime-kuma/pre-update-compose.yml", "prev_applied": "/opt/docker/stacks/uptime-kuma/pre-update-applied.yml", "proven_copy_at": "2026-09-21T11:01:46Z", "proven_tier": 1 } } }