# Installed network-error and decoder-failure checks Observed 2026-09-23 on the physical board with the production installed controller and player from image `/nix/store/d7r354bnsnffxnwnqblaf3raqvd15190-k230-sd-image.img` (source `03cbade`). These are root-controlled failure injections with the player running as shell UID 1000, not physical-finger trials. `check.py` was copied unchanged to `/run/video-recovery-check.py` and run with `/nix/store/v189xydz6qkcd4cbkixcmv91w8hbc560-python3-riscv64-unknown-linux-gnu-3.14.7/bin/python3`. The exact procedure and allowlisted observations are retained here. - **Network startup failure passed.** A shell-owned mode-0600 runtime playlist named a deliberately unavailable local endpoint. The production controller exited spontaneously with status 2; its process group, state, IPC socket and playlist were gone before the safety Stop ran. This proves this startup failure, not recovery from every mid-stream network outage. - **MVX initialization-failure fallback did not pass.** The fixture temporarily removed access to `/dev/video0`. It observed the production MVX child but no software child with advancing playback inside the 45-second bound. This does not establish the cause; a controller marker, socket existence or decoder argv alone cannot prove successful fallback. Task 4.2 remains open. The fixture restored the decoder device permissions in `finally`, called the normal Stop path, and the subsequent console check reported mode `660`. Its failed result is retained rather than converted into an acceptance claim. Follow-up must establish why the player did not enter verified software playback, fix the production behavior if needed, and repeat the bounded test.