The NAS was full and stuck read-only, and I knew exactly what to delete. A 2.6 GB folder of JDownloader leftovers. Obvious candidate, obvious win, get the volume back.
The assistant did not delete it. It went and looked first, which is annoying when you have already decided, and correct almost every time you have already decided.
What it found was three Macrium Reflect full images. Together they took about 4.75 TiB of a 7.27 TiB volume. Not 4.75 GB. Terabytes, sitting on the same disks they were protecting, because that is where the backup share pointed and nobody ever asked how much room the history was allowed to take.
Two things followed from that, and only one of them was about space.
The first is arithmetic. A volume at 100% is not a volume with no room left, it is a volume that cannot do its own bookkeeping. btrfs needs working space to write metadata about the metadata, and when there is none it does not politely return an error. It corrupts. The check came back with bad key order and cannot fix corrupt node — the language of a filesystem that has lost track of itself.
The second is the part that should worry anyone who trusts a dashboard. Both disks were SMART-clean. Zero I/O errors. Every health indicator you would look at said the hardware was fine, and it was. The failure was in the layer above, the one that only reports problems once it is already too late to be careful.
Then we rebooted, which is what you do, and it came back read-only. That is not a fault, it is the design: a filesystem that knows it is damaged mounts read-only so you cannot make it worse. Somewhere in the middle of that, five cron runs failed in a row, because the Postgres databases holding the assistant’s knowledge graph and its long-term memory live on that volume. The machine was up. The mind was not.
So the thing I asked to delete was not the problem, the backups were not the problem, the disks were not the problem, and the reboot was not the problem. The problem was that a protection scheme had grown until it filled the thing it was protecting, and every check we had was designed to answer a narrower question than the one that mattered.
The volume is alive today. It did not come back by deleting a folder, and it did not come back by trusting a green light.
Backups are data too. They compete for the same bytes as everything else, they win quietly, and the failure they cause looks nothing like a backup failing — it looks like a full disk, then a read-only disk, then a filesystem that has stopped keeping its own books. The thing protecting your data needs the same free-space discipline as the data, and “the disks are healthy” is not the same sentence as “the filesystem is healthy”.