Navidrome Daily: Better Errors, Better Persistence
A cluster of merges this cycle focused on making failures legible—to users, to logs, and to external services—while a UI persistence fix went through several rounds of correction before landing safely. Deluan authored all six merged or opened changes, spanning streaming errors, scrobbler resilience, Jellyfin filtering, and plugin manifest cleanup.
Duration: PT2M17S
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-07-20T10:00:33Z
- Audio duration: PT2M17S
Transcript excerpt
This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.
Good evening. It's July 20th, and this is Navidrome Daily.
The throughline tonight is error visibility. Multiple merges this cycle exist purely to stop swallowing the real reason something failed.
Start with PR 5820. When ffprobe couldn't read a moved or deleted file, the transcode decision endpoint just said "failed," full stop—even the server log gave you nothing but exit status 1. The fix runs ffprobe with real error output, introduces a typed probe error, and after several review rounds, carefully…
Same instinct shows up in PR 5818: the scrobbler used to hammer a struggling Last.fm or ListenBrainz endpoint every five seconds, forever. Now it backs off exponentially up to four minutes, verified with a synctest-based test that checks the exact five-ten-twenty-forty-second schedule and confirms the buffer drains…
Second theme: the items-per-page persistence work in PR 5819 looked simple but took nine follow-up commits to get right. The core bug: watching every pagination value meant a URL-injected page size or a mobile layout's forced option would silently overwrite a user's real preference. The eventual fix only persists on…
Two more items worth flagging: PR 5817 rounds out…