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…

Nearby episodes from Navidrome Daily

  1. Weekly Recap - Jellyfin Compatibility Takes Center Stage
  2. Jellyfin Compatibility Push
  3. Cover Art Gets an Overhaul
  4. Hardening the Jellyfin API Under Real Client Load
  5. Closing the Jellyfin Memory Leaks
  6. The Jellyfin Push
  7. Database Statistics and Share Security Fixes
  8. Trusting What the Client Sees