L_Hug
August 14, 2026, 11:53am
1
Hi there since two days I can’t stream anything from Spotify while getting an error: gstreamer recourse not found. Has Spotify updated something in their API? Anyone else with this issue?
Thanks
jodal
August 14, 2026, 11:57am
2
L_Hug
August 14, 2026, 12:25pm
3
Jodal, thanks for the real quick response. As I don’t really understand everything under the link it seems to me that right now there is no solution? Do you think there will be a fix soon?
Thank you for the kind support!
L_Hug
August 20, 2026, 10:31pm
4
Solved it with the help of kingosticks post!
opened 05:55PM - 11 Aug 26 UTC
Playback fails with `login5` `INVALID_CREDENTIALS` on 5.0.0a3 + gst-plugin-spoti… fy 0.15.0-alpha.1-3aab047 (Premium account, `streaming` scope present)
### Summary
Web API works normally (login, playlist refresh). Playback consistently fails: librespot authenticates successfully at the access point, then the `login5.spotify.com/v3/login` call returns `INVALID_CREDENTIALS`. Started suddenly on August 10th 2026 on a previously working install; no config changes on my side.
### Versions
- OS: Raspberry Pi OS Bullseye (armhf, 32-bit), Python 3.9.2
- Mopidy 3.4.2 (apt)
- Mopidy-Spotify 5.0.0a3 (pip) — pinned by Phoniebox v2 `requirements-spotify.txt`; newer releases require Python >= 3.11 (a4) / >= 3.13 (a5+), so unreachable on Bullseye
- gst-plugin-spotify `0.15.0-alpha.1-3aab047` (librespot 0.8.0) — currently the latest published build
- Phoniebox v2 (MiczFlor/RPi-Jukebox-RFID)
### What I've already verified
- Spotify account is **Premium** and active; `Country: "DK"`
- `gst-inspect-1.0 spotifyaudiosrc | grep access-token` → `access-token : Spotify access token, requires 'streaming' scope`
- Token scopes (from `[loglevels] mopidy_spotify = debug`) include `streaming`:
`playlist-read-private playlist-read-collaborative streaming user-library-read user-follow-read user-library-modify playlist-modify-private playlist-modify-public user-read-recently-played user-read-private user-top-read`
- No `credentials.json` anywhere (`find /var/lib/mopidy /home -name credentials.json` → empty)
- `client_id` / `client_secret` freshly obtained from mopidy.com and present in `mopidy.conf`
- System clock correct, NTP synced
- Outbound TCP 4070 reachable (`nc -zv ap-gew4.spotify.com 4070` succeeds)
- Confirmed 5.0.0a3 does call `source.set_property("access-token", ...)` in `backend.py`, so the token is being handed to the plugin
### Log (debug)
```
INFO mopidy_spotify.web Logged into Spotify Web API as <user>
INFO mopidy_spotify.playlists Refreshed 5 Spotify playlists
DEBUG mopidy_spotify.web Token scopes: ... streaming ...
INFO spotifyaudiosrc Using librespot 0.8.0
DEBUG librespot hyper_rustls::config: with_native_roots processed 150 valid and 0 invalid certs
DEBUG librespot_core::connection: Authenticating with AP using AUTHENTICATION_SPOTIFY_TOKEN
DEBUG librespot_core::connection: Authenticating with AP using AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS
INFO librespot_core::session: Authenticated as '<user>' !
DEBUG librespot_core::login5: new Login5Manager
DEBUG librespot_core::http_client: Requesting https://login5.spotify.com/v3/login
ERROR librespot_playback::player: Unable to load audio item: Error { kind: FailedPrecondition, error: FaultyRequest(INVALID_CREDENTIALS) }
ERROR spotifyaudiosrc imp.rs:278 <source> track is not available
ERROR mopidy.audio.gst GStreamer error: Resource not found.
```
### Question
Note the auth sequence: it attempts `AUTHENTICATION_SPOTIFY_TOKEN`, immediately falls through to `AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS`, and that succeeds — despite no credentials cache existing on disk. Is the access token actually being used for the AP handshake here, or is the token path silently failing before `login5` is reached?
This looks closely related to librespot-org/librespot#1660 (same `login5` rejection after successful AP auth), which was reported as reproducing on Bullseye, Bookworm and Trixie alike.
Happy to provide full unfiltered logs or test patches.
Thank you guys for your work on Mopidy and your help! I really appreciate it!