What this list is

Eight things that actually happened

Not a list of questions somebody imagined a reader might ask. Every row cost somebody something.

Why these and not an FAQ 1 lines · 95 characters
Every row is a real recorded incident, not an invented FAQ. That is the point of printing them.
Source site material Block 5 section 3 · every row a recorded incident, with its decision number in the product record

Each of these cost somebody a day, or in one case sixteen files that could not be recovered. They are printed with what the thing actually turned out to be, because a symptom without a cause sends an operator looking in the wrong place, which is what happened in most of them.

The failures

The symptom, the cause, and what to do

The cause is printed because a symptom on its own sends an operator looking in the wrong place, which is what happened in most of these.

01Media missing, failed file receipts on the dashboard, and later retries fail forever

What it is: SimpleX file relays keep files about 48 hours, so a receipt not retried in that window is unrecoverable. 16 were lost this way once

What to do: React to file-receipt alerts within two days. After that the bytes are gone from the relay

02Context window set, and the model still loads at 8,192

What it is: The transport cannot set the window per request: tested, and ignored. The host environment variable is the only lever, and Ollama must be restarted

What to do: Set it in Ollama's own environment, restart Ollama, verify the loaded size

03AI silently degrades to deterministic replies

What it is: The configured model is not installed. Once the shipped default itself was a plausible guess and was absent, which turns not configured into the model is failing

What to do: Check the catalog on the Models page. The persisted choice must name an installed model

04Upload returns 504 after about 60 s, or 413 immediately

What it is: Work inside a request outran the nginx 60 s proxy timeout, which the first real music track did within minutes. The 413 is an old vhost 1 MB body cap

What to do: Update the vhost from the repo. Do not raise the proxy timeout

05git pull on the host refuses over untracked files

What it is: A probe script copied into the checkout for a host run, left there, then pushed at the same path. Three occurrences, one blocked deploy

What to do: Host-run files go to the git-ignored tmp path and are removed after the run. git status must print nothing before a deploy

06npm audit says clean and the vulnerable code still runs

What it is: npm audit fix rewrote the lockfile and did not install, and audit reads the lockfile. npm ci can also die mid-removal over a locked file, leaving a partial tree with audit still green

What to do: Read the installed version from node_modules directly. For anything that matters, read the patched code

07A console page shows a world that no longer exists, and a correct refusal reads as a broken control

What it is: The stale-surface class, four in one day: the thing that changed the world did not tell the surfaces that describe it

What to do: Reload before concluding a control is broken. The core, not the console, is the state

08After a deploy, every passkey fails

What it is: An origin mismatch: a passkey is bound to the identity it was created under. The boot now refuses on a mismatch with an actionable error instead of a silent lockout

What to do: Keep the public origin and the WebAuthn overrides consistent, and never move the console hostname casually

The rules behind them

Three sentences worth keeping

Each came out of one of the failures above and now decides how a whole class of them is handled.

Why the timeout is not raised 1 lines · 85 characters
a route that needs a raised proxy timeout is a route doing work that belongs in a job
Source site material Block 5 section 3 · every row a recorded incident, with its decision number in the product record
The stale-surface class, in one line 1 lines · 75 characters
the thing that changed the world did not tell the surfaces that describe it
Source site material Block 5 section 3 · every row a recorded incident, with its decision number in the product record
What a default that cannot run does 1 lines · 36 characters
was a plausible guess and was absent
Source site material Block 5 section 3 · every row a recorded incident, with its decision number in the product record