Navidrome Daily: Fixing Silent Failures
The biggest merge today, PR #6028, fixes scrobbling so external rate limits are respected instead of silently dropping plays, while a separate scanner fix in PR #6046 corrects a Linux bug that's been quietly broken since 2023. Both share a theme: bugs that looked like they worked, but didn't.
Duration: PT2M14S
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-08-30T10:01:20Z
- Audio duration: PT2M14S
Transcript excerpt
This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.
Welcome to Navidrome Daily for August 30th, 2026.
Today's story is about bugs that passed their own tests but failed in the real world - and the work it took to actually prove that.
Start with scrobbling, PR number 6028, the largest change of the day. When Last-dot-FM or ListenBrainz tells Navidrome to slow down - a rate limit, an HTTP 429 - the old code sometimes misread that signal as a permanent failure and just threw the scrobble away. Now there's a proper retry-later error type that…
Second theme: silent no-ops. PR 6046 fixes file birth-time tracking on Linux, which turns out to have never worked since it was introduced back in PR 2553. The code was checking a field that Linux's plain stat call simply doesn't return, so every file silently fell back to the current time. Nobody's tests caught it…
One more: PR 6044 lets podcast episodes scrobble properly when played offline and synced later - previously those play counts just vanished because the server only knew how to resolve regular media files, not podcast episodes.
What to remember: if you're debugging a "not found" or a silently missing play count, ask whether it's actually a rate limit or an unsupported ID type in disguise.…