play.rs example INVALID_CREDENTIALS since 2026-08-10
Author: DerkadesCreated Aug 13, 2026Updated Aug 27, 2026
Labelsbug
Description
I am using a program very similar to the play.rs example, so with an access token provided externally. Since august 10th this no longer works. Spotify probably changed something on their backend. I am wondering if anyone else experiences the same issue.
Version
Latest git master as of 2026-08-13
Log
[2026-08-13T19:52:23Z DEBUG librespot_core::session] new Session
[2026-08-13T19:52:23Z DEBUG librespot::component] new ApResolver
[2026-08-13T19:52:23Z DEBUG librespot_core::http_client] Requesting https://apresolve.spotify.com/?type=accesspoint&type=dealer&type=spclient
[2026-08-13T19:52:23Z INFO librespot_core::session] Connecting to AP "ap-gew4.spotify.com:4070"
[2026-08-13T19:52:23Z DEBUG librespot_core::connection] Connection to "ap-gew4.spotify.com:4070" failed: Connection refused (os error 111)
[2026-08-13T19:52:23Z DEBUG librespot_core::connection] Retry access point...
[2026-08-13T19:52:23Z DEBUG librespot_core::connection] Connection to AP established.
[2026-08-13T19:52:23Z DEBUG librespot_core::connection] Authenticating with AP using AUTHENTICATION_SPOTIFY_TOKEN
[2026-08-13T19:52:23Z TRACE librespot_core::session] Reconnect using stored credentials as token authed sessions cannot use keymaster.
[2026-08-13T19:52:23Z DEBUG librespot_core::connection] Connection to AP established.
[2026-08-13T19:52:23Z DEBUG librespot_core::connection] Authenticating with AP using AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS
[2026-08-13T19:52:23Z INFO librespot_core::session] Authenticated as 'redacted' !
[2026-08-13T19:52:23Z TRACE librespot_core::session] Received Ping
[2026-08-13T19:52:23Z TRACE librespot_core::session] keep-alive state: PendingPong, timeout in 60.0
[2026-08-13T19:52:23Z DEBUG librespot_core::session] Session strong=2 weak=3
[2026-08-13T19:52:23Z INFO librespot_core::session] Country: "NL"
[2026-08-13T19:52:23Z DEBUG librespot_playback::player] new Player [0]
[2026-08-13T19:52:23Z TRACE librespot_core::session] Received product info: {
"high-bitrate": "1",
"app-developer": "0",
"prefetch-keys": "1",
"sidebar-navigation-enabled": "0",
"widevine-license-url": "https://spclient.wg.spotify.com/widevine-license/v1/video/license",
"enable-annotations-read": "0",
"capping-bar-threshold": "3601",
"catalogue": "premium",
"mobile": "1",
"playlist-annotations-markup": "0",
"publish-playlist": "0",
"video-device-blacklisted": "0",
"public-toplist": "0",
"collection": "1",
"is_email_verified": "1",
"key-memory-cache-mode": "1:15,300",
"metadata-link-lookup-modes": "0",
"payments-locked-state": "0",
"prefetch-strategy": "2",
"shuffle": "0",
"restrict-playlist-collaboration": "0",
"remote-control": "6",
"incognito_mode_timeout": "21600",
"libspotify": "1",
"loudness-levels": "1:-5.0,0.0,3.0:-2.0",
"ad-formats-preroll-video": "0",
"image-url": "https://i.scdn.co/image/{file_id}",
"enable-annotations": "2",
"name": "Spotify Premium",
"payments-initial-campaign": "default",
"publish-activity": "0",
"employee-free-opt-in": "0",
"on-demand-trial-in-progress": "0",
"shows-collection-jam": "0",
"streaming": "1",
"radio": "1",
"type": "premium",
"audiobook-onboarding-completed": "0",
"filter-explicit-content": "0",
"shows-collection": "1",
"video-manifest-url": "https://spclient.wg.spotify.com/manifests/v6/{type}/sources/{source_id}/options/supports_drm",
"ab_recently_played_feature_time_filter_threshold": "com.spotify.gaia=30,driving-mode=120,spotify%3Ainternal%3Astartpage=30",
"storage-size-config": "10240,90,500,3",
"key-caching-max-offline-seconds": "1800",
"key-caching-max-count": "10000",
"head-file-caching": "1",
"head-files-url": "https://heads-fa-tls13.spotifycdn.com/head/{file_id}",
"offline": "1",
"ugc-abuse-report-url": "https://support.spotify.com/abuse/?uri={uri}",
"financial-product": "pr:premium,tc:0,rt:v2_NL_default_new-family-sub-basic-1m-1m_0_EUR_default",
"nft-disabled": "1",
"audio-preview-url-template": "https://p.scdn.co/mp3-preview/{id}",
"head-files": "1",
"send-email": "1",
"prefetch-window-max": "2",
"explicit-content": "1",
"enable-crossfade": "1",
"arsenal_country": "1",
"preferred-locale": "en",
"unrestricted": "1",
"ads": "0",
"video-cdn-sampling": "100",
"ab-watch-now": "0",
"player-license": "premium",
"ab-ad-player-targeting": "1",
"on-demand": "1",
"ugc-abuse-report": "1",
"ad-session-persistence": "1",
}
[2026-08-13T19:52:23Z INFO librespot_playback::audio_backend::pipe] Using StdoutSink (pipe) with format: S16
[2026-08-13T19:52:23Z DEBUG librespot_playback::player] command=Load(SpotifyUri("spotify:track:redacted"), true, 0)
[2026-08-13T19:52:23Z DEBUG librespot_playback::player] command=AddEventSender
[2026-08-13T19:52:23Z DEBUG librespot::component] new SpClient
[2026-08-13T19:52:23Z INFO librespot_core::spclient] Resolved "gew4-spclient.spotify.com:443" as spclient access point
[2026-08-13T19:52:23Z DEBUG librespot::component] new Login5Manager
[2026-08-13T19:52:23Z DEBUG librespot_core::spclient] Client token unavailable or expired, requesting new token.
[2026-08-13T19:52:23Z DEBUG librespot_core::http_client] Requesting https://clienttoken.spotify.com/v1/clienttoken
[2026-08-13T19:52:23Z DEBUG librespot::component] new MercuryManager
[2026-08-13T19:52:23Z DEBUG librespot::component] new DealerManager
[2026-08-13T19:52:23Z DEBUG librespot_core::mercury] unknown subscription uri=hm://pusher/v1/connections/redacted
[2026-08-13T19:52:23Z TRACE librespot_core::mercury] response pushed over Mercury: MercuryResponse { uri: "hm://pusher/v1/connections/redacted", status_code: 200, payload: [] }
[2026-08-13T19:52:23Z DEBUG librespot_core::session] could not dispatch command: Service unavailable { error handling Mercury response: MercuryResponse { uri: "hm://pusher/v1/connections/redacted", status_code: 200, payload: [] } }
[2026-08-13T19:52:23Z DEBUG librespot_core::spclient] Received a granted token
[2026-08-13T19:52:23Z TRACE librespot_core::spclient] Got client token: GrantedTokenResponse { token: "redacted", expires_after_seconds: 1216800, refresh_after_seconds: 1209600, domains: [TokenDomain { domain: "spotify.com", special_fields: SpecialFields { unknown_fields: UnknownFields { fields: None }, cached_size: CachedSize { size: 0 } } }, TokenDomain { domain: "spotify.net", special_fields: SpecialFields { unknown_fields: UnknownFields { fields: None }, cached_size: CachedSize { size: 0 } } }], special_fields: SpecialFields { unknown_fields: UnknownFields { fields: None }, cached_size: CachedSize { size: 0 } } }
[2026-08-13T19:52:23Z DEBUG librespot_core::http_client] Requesting https://login5.spotify.com/v3/login
[2026-08-13T19:52:23Z ERROR librespot_playback::player] Unable to load audio item: Error { kind: FailedPrecondition, error: FaultyRequest(INVALID_CREDENTIALS) }
[2026-08-13T19:52:23Z ERROR librespot_playback::player] Skipping to next track, unable to load track <SpotifyUri("spotify:track:redacted")>: ()Source: librespot-org/librespot