From de09e8f294e594cd268a92b3d0dd53fc633eb62e Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Tue, 2 Jun 2026 08:54:11 +0000 Subject: [PATCH] immich runbook: note force=false re-kick gotcha after row deletion [ci skip] The videoConversion enqueue is an async scan; deleting encoded_video rows while a prior scan is in-flight misses them (observed 2026-06-02: 11/3296 picked up on the first pass). Re-trigger force=false once the queue first drains to waiting:0. Co-Authored-By: Claude Opus 4.8 --- docs/runbooks/immich-transcode-bitrate.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/runbooks/immich-transcode-bitrate.md b/docs/runbooks/immich-transcode-bitrate.md index 0bb932aa..406611d0 100644 --- a/docs/runbooks/immich-transcode-bitrate.md +++ b/docs/runbooks/immich-transcode-bitrate.md @@ -53,6 +53,12 @@ the **non-conforming** subset: This makes them "missing." The deterministic `.mp4` path is overwritten on regen (reclaims space). 3. Trigger `PUT /api/jobs/videoConversion {"command":"start","force":false}`. + **Gotcha (seen 2026-06-02):** the enqueue is an async background scan. If a prior + scan is still in-flight when you delete the rows, the freshly-missing assets get + MISSED and the queue drains early (only 11/3296 offenders were picked up on the + first pass). After the queue first reaches `waiting:0`, **re-trigger `force=false` + once while the queue is idle** and confirm the still-missing/offender count actually + dropped — a fresh scan enqueues anything missed. 4. Per-asset API (`POST /api/assets/jobs`) is owner-scoped (admin can't drive other users' assets) — hence the delete-then-missing approach via the admin global job.