Navidrome Daily: Stop Guessing, Start Retrying Right

Today's changes center on one lesson: don't treat "we don't know" the same as "we know it's absent" — artwork, Deezer lookups, and coverage reporting all got fixes for exactly that confusion.

Duration: PT2M19S

Episode overview

This episode is a short developer briefing from Navidrome Daily.

It explains recent repository work in plain language.

  • Show: Navidrome Daily
  • Published: 2026-09-02T10:01:49Z
  • Audio duration: PT2M19S

Transcript excerpt

This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.

Good morning, it's September 2nd, and here's the throughline in today's activity: several fixes are about not mistaking a temporary failure for a permanent one.

Start with artwork. PR 6054 found that three separate code paths kept re-checking artwork already marked absent — an hourly job, entity views, and worst of all, a startup backfill that requeued the entire library on any config change. On a large library that meant tens of thousands of lookups fired at once, and…

That same theme shows up in PR 6068. Deezer returns quota-exhausted responses with an HTTP 200 and no rate-limit headers, so the client was decoding an empty result and calling it "not found." The artwork worker then treated "not found" as "no image" and moved on, meaning being throttled silently mislabeled artists…

Second theme: CI coverage reporting had a trust and accuracy problem. PR 6065 fixed silent failures on fork pull requests by moving the comment step to a workflow with proper write access — then had to lock that down further, checking artifacts as untrusted input to avoid a token leak. PR 6070 closed a separate gap:…

One more solid addition: PR 6002 and commit bd46284 now reject negative durations across…

Wh…

Nearby episodes from Navidrome Daily

  1. Silent Data Loss, Fixed Three Ways
  2. The Go 1.27 Cleanup Wave
  3. Weekly Recap - Backing Off Gracefully, Failing Loudly
  4. Fixing Silent Failures
  5. Dependency Housekeeping
  6. Cleanup and Clarity
  7. Fixing Silent Data Corruption
  8. Playing Nice With External Providers