Repository navigation
play.rs example INVALID_CREDENTIALS since 2026-08-10 #1737
Copy link
Copy link
Open
Labels
Description
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")>: ()
Reacted by Konstantin Stepanov, Matías Duhalde, Tomás Cutro and Michael Herger
Activity
kstep commentedon Aug 13, 2026
Yes, I see the same issue with playback started around the same dates.
kstep commentedon Aug 14, 2026
Is it connected to devgianlu/go-librespot#364 ?
michaelherger commentedon Aug 14, 2026
Yes to both: I'm seeing the same with my own clone and adaption of
play.rs, and yes, the description (including the workaround) are what I concluded, too.kstep commentedon Aug 14, 2026
Have you seen https://developer.spotify.com/documentation/soloist/tutorials/getting-started https://developer.spotify.com/blog/2026-08-13-introducing-spotify-soloist ? Seems like they closed the old access keys as a preparation for soloist release.
kingosticks commentedon Aug 17, 2026
To be clear, third-party access keys still work for the Spotify Web API as before, they only closed off access to their private endpoints we were using for playback purposes.
Derkades commentedon Aug 27, 2026
Since I opened this issue two new methods have been documented:
The last one works well for my use case. Thank you for all the effort.
Fix Windows ARM64 platform signature for Spotify Access Point
Fix playback authorization scopes and username forwarding
Fix Windows ARM64 platform signature for Spotify Access Point
Fix Windows ARM64 platform signature for Spotify Access Point
Fix Windows ARM64 platform signature for Spotify Access Point
Fix Windows ARM64 platform signature for Spotify Access Point
Fix Windows ARM64 platform signature for Spotify Access Point
Fix Windows ARM64 platform signature for Spotify Access Point (#5)