mirror of
https://github.com/navidrome/navidrome.git
synced 2026-08-31 07:30:32 +00:00
An artwork state that resolved to "no image" was revisited by three separate paths: an hourly job that re-queued 100 stale absents per kind, a view of the entity itself once an hour, and the startup backfill, which re-enqueued every entity whenever an artwork config value changed. On a large library the last one alone queued tens of thousands of external lookups and rate-limited the provider for hours. Nothing revisits an absent state now. Retrying is an explicit act: `artwork reprocess` from the CLI, or the refresh button in the UI. The startup backfill is gone with it. The config fingerprint survives as an advisory only: a fresh install records it silently, a change logs a warning naming `artwork reprocess --all`, and that command records the new fingerprint when it runs unfiltered over the whole library. `artwork status` reports the same thing in place of its old Backfill section. RecheckKinds becomes ReprocessKinds and hasRecheckPath becomes settlesAbsentOnGiveUp, since no recheck is left to name. Media files keep their exemption from settling absent: only a view enqueues them, and an absent row is what would stop a view from doing so, so a transient read error must not look permanent.