spotube/lib/services/sourced_track
Tomasz Jabłonowski ccf82de13d fix(sourced-track): retry stale cache/auth, fall back on missing presets
Three related resilience gaps in SourcedTrack.fetchFromTrack and URL
resolution:

- A cached SpotubeAudioSourceMatchObject whose stream resolution now
  fails (source removed/changed) was never retried; it now deletes the
  stale sourceMatchTable row, fetches fresh siblings, caches the new
  match, and retries once.
- fetchSiblings returning empty was treated as a hard TrackNotFoundError;
  it now attempts audioSource.auth.authenticate() once and retries
  before giving up, via a shared _fetchSiblingsWithRetry helper.
- `url` getter and getUrlOfQuality threw/returned null when the user has
  no configured quality presets, or no stream matches the selected
  container; both now fall back to sources.firstOrNull?.url instead of
  crashing.

Fixes #3091
2026-07-26 10:39:55 +02:00
..
exceptions.dart feat: move away from track source query and preferences audio quality and codec 2025-11-03 19:33:47 +06:00
sourced_track.dart fix(sourced-track): retry stale cache/auth, fall back on missing presets 2026-07-26 10:39:55 +02:00