2026-09-16T20:38:31Z login ok (csrf 64)
tr: write error: Broken pipe
tr: write error: Broken pipe
2026-09-16T20:38:31Z  bookstack  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/bookstack/app.yaml.tmp: open /opt/docker/stacks/bookstack/app.yaml.tmp: read-only file system
tr: write error: Broken pipe
2026-09-16T20:38:31Z  gokapi  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/gokapi/app.yaml.tmp: open /opt/docker/stacks/gokapi/app.yaml.tmp: read-only file system"}
tr: write error: Broken pipe
2026-09-16T20:38:31Z  homebox  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/homebox/app.yaml.tmp: open /opt/docker/stacks/homebox/app.yaml.tmp: read-only file system"}
2026-09-16T20:38:32Z  uptime-kuma  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/uptime-kuma/app.yaml.tmp: open /opt/docker/stacks/uptime-kuma/app.yaml.tmp: read-only file sy
2026-09-16T20:38:32Z  mealie  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/mealie/app.yaml.tmp: open /opt/docker/stacks/mealie/app.yaml.tmp: read-only file system"}
tr: write error: Broken pipe
2026-09-16T20:38:32Z  vaultwarden  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/vaultwarden/app.yaml.tmp: open /opt/docker/stacks/vaultwarden/app.yaml.tmp: read-only file sy
tr: write error: Broken pipe
tr: write error: Broken pipe
2026-09-16T20:38:32Z  adventurelog  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/adventurelog/app.yaml.tmp: open /opt/docker/stacks/adventurelog/app.yaml.tmp: read-only file 
tr: write error: Broken pipe
tr: write error: Broken pipe
tr: write error: Broken pipe
2026-09-16T20:38:32Z  nextcloud  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/nextcloud/app.yaml.tmp: open /opt/docker/stacks/nextcloud/app.yaml.tmp: read-only file system
tr: write error: Broken pipe
tr: write error: Broken pipe
tr: write error: Broken pipe
2026-09-16T20:38:32Z  paperless-ngx  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/paperless-ngx/app.yaml.tmp: open /opt/docker/stacks/paperless-ngx/app.yaml.tmp: read-only fil
2026-09-16T20:38:32Z  jellyfin  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/jellyfin/app.yaml.tmp: open /opt/docker/stacks/jellyfin/app.yaml.tmp: read-only file system"}
tr: write error: Broken pipe
2026-09-16T20:38:32Z  immich  accept=500
    REFUSED: {"ok":false,"error":"saving app config: writing /opt/docker/stacks/immich/app.yaml.tmp: open /opt/docker/stacks/immich/app.yaml.tmp: read-only file system"}
2026-09-16T20:38:32Z === re-seed finished; final state ===
  bookstack deployed: false
  gokapi deployed: false
  homebox deployed: false
  immich deployed: false
  jellyfin deployed: false
  nextcloud deployed: false
  paperless-ngx deployed: false
  privatebin deployed: true
  uptime-kuma deployed: false
  vaultwarden deployed: false
cloudflared felhom-controller filebrowser privatebin traefik 
curl: option --data-urlencode: error encountered when reading a file
curl: try 'curl --help' or 'curl --manual' for more information
grep: /tmp/.l: No such file or directory
2026-09-16T20:41:05Z login ok (csrf 0)
2026-09-16T20:41:06Z  bookstack  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z  gokapi  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z  homebox  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z  uptime-kuma  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z  mealie  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z  vaultwarden  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z  adventurelog  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z  nextcloud  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z  paperless-ngx  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z  jellyfin  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z  immich  accept=401
    REFUSED: {"ok":false,"error":"authentication required"}
2026-09-16T20:41:06Z === re-seed finished; final state ===
  bookstack deployed: false
  gokapi deployed: false
  homebox deployed: false
  immich deployed: false
  jellyfin deployed: false
  nextcloud deployed: false
  paperless-ngx deployed: false
  privatebin deployed: true
  uptime-kuma deployed: false
  vaultwarden deployed: false
cloudflared felhom-controller filebrowser privatebin traefik 
2026-09-16T20:41:58Z login ok (csrf 64)

## My THIRD harness error, and the worst-shaped one
The guest restart that un-wedged the filesystem also cleared `/tmp` — where the dashboard password
file lived. The re-seed script's login therefore failed:

    curl: option --data-urlencode: error encountered when reading a file
    grep: /tmp/.l: No such file or directory
    login ok (csrf **0**)          <- it said "login ok" with an empty token

and every one of the eleven deploys came back:

    accept=401  {"ok":false,"error":"authentication required"}

**Eleven lines that look exactly like the product refusing eleven installs.** They are nothing of the
kind: the product was right to refuse an unauthenticated caller, and the missing credential was mine.
Had I skimmed this output I would have written up a spectacular false finding — „the box refuses
every deploy after a restart" — and it would have been entirely an artefact of my own tooling.

Three of my errors tonight share one shape: **a script that keeps going after its own precondition
failed, and prints a confident line anyway** („all twelve deploys ACCEPTED", „login ok (csrf 0)",
and the `head -12` that hid a disk). The fix applied here is the one that should have been there from
the first line: the script now ABORTS when the session token is empty, and says the fault is mine
rather than reporting deploys as refused.
2026-09-16T20:41:58Z  bookstack  accept=202
2026-09-16T20:42:49Z  bookstack  INSTALLED (containers matching: 2)
2026-09-16T20:42:49Z  gokapi  accept=202
2026-09-16T20:42:59Z  gokapi  INSTALLED (containers matching: 1)
2026-09-16T20:42:59Z  homebox  accept=202
2026-09-16T20:43:09Z  homebox  INSTALLED (containers matching: 1)
2026-09-16T20:43:09Z  uptime-kuma  accept=202
2026-09-16T20:44:00Z  uptime-kuma  INSTALLED (containers matching: 1)
2026-09-16T20:44:00Z  mealie  accept=202
2026-09-16T20:44:50Z  mealie  INSTALLED (containers matching: 1)
2026-09-16T20:44:50Z  vaultwarden  accept=202
2026-09-16T20:45:01Z  vaultwarden  INSTALLED (containers matching: 1)
2026-09-16T20:45:01Z  adventurelog  accept=202
2026-09-16T20:46:01Z  adventurelog  INSTALLED (containers matching: 3)
2026-09-16T20:46:01Z  nextcloud  accept=202
2026-09-16T20:46:11Z  nextcloud  INSTALLED (containers matching: 3)
2026-09-16T20:46:12Z  paperless-ngx  accept=202
2026-09-16T20:46:32Z  paperless-ngx  INSTALLED (containers matching: 0)
2026-09-16T20:46:32Z  jellyfin  accept=202
2026-09-16T20:46:42Z  jellyfin  INSTALLED (containers matching: 1)
2026-09-16T20:46:42Z  immich  accept=202
2026-09-16T20:46:52Z  immich  INSTALLED (containers matching: 4)
2026-09-16T20:46:52Z === re-seed finished; final state ===
  adventurelog deployed: true
  bookstack deployed: true
  gokapi deployed: true
  homebox deployed: true
  immich deployed: true
  jellyfin deployed: true
  mealie deployed: true
  nextcloud deployed: true
  paperless-ngx deployed: true
  privatebin deployed: true
  uptime-kuma deployed: true
  vaultwarden deployed: true
adventurelog adventurelog-frontend adventurelog-postgres bookstack bookstack-db cloudflared felhom-controller filebrowser gokapi homebox immich-machine-learning immich-postgres immich-redis immich-server jellyfin mealie nextcloud nextcloud-db nextcloud-redis paperless-postgres paperless-redis paperless-webserver privatebin traefik uptime-kuma vaultwarden 
