When a source file changes while a request still holds the old library.Item, render.Prune (run after the rescan) can remove the old version directory while Renderer.generate is writing into it:
os.Renamefails with ENOENT → that request returns 500.- or
MkdirAllrecreates the old directory after the prune → orphan until the next rescan. - or
ServeFile404s afterGetreturned.
Self-healing on the next request. Possible fix: prune only version directories older than the previous snapshot, or skip directories with a .tmp-* file younger than a minute.
closed by cmc in commit 2893c158e9: Fix v1 follow-ups (!3)
2026-09-26 19:08 UTC