mirror of
https://github.com/navidrome/navidrome.git
synced 2026-10-18 07:30:29 +00:00
20260819204637 added last_failure as NOT NULL DEFAULT '[]', so every row already in item_artwork was backfilled with a non-empty value. Nothing read that column until this PR, which uses non-empty to mean "this state was reached by exhausting the retry budget". Every absent row predating that migration therefore reported as failed. The consequence is the opposite of what --source failed is for: on an install with a large absent population it would enqueue all of it, which is the external-lookup burst the option exists to avoid. My own database had ten such playlist rows, attempted 2026-08-17 against a migration applied 2026-08-31, and artwork status called all ten failed. After this it reads 10 no image, 0 failed. Normalizing the data rather than excluding '[]' in the predicate, because an empty trace does encode as '[]' — no reachable give-up path produces one today, but relying on that would silently drop a real give-up out of the failed set if a future failure path skipped its trace.