[GH-ISSUE #837] Error: initialize new Spotify session #1440

Closed
opened 2026-03-14 14:56:43 +03:00 by kerem · 4 comments
Owner

Originally created by @samuelstevens on GitHub (Sep 21, 2025).
Original GitHub issue: https://github.com/aome510/spotify-player/issues/837

Describe the bug
When running spotify_player I get Error: initialize new Spotify session.

To Reproduce

[I] samstevens@localhoster ~ [1]> spotify_player --version
spotify_player 0.21.0
[I] samstevens@localhoster ~> which spotify_player
/Users/samstevens/.cargo/bin/spotify_player
[I] samstevens@localhoster ~ [1]> rm -rf .cache/spotify-player/ .config/spotify-player/
[I] samstevens@localhoster ~> spotify_player
No cached credentials found, please authenticate the application first.
Browse to: https://accounts.spotify.com/authorize?response_type=code&client_id=65b708073fc0480ea92a077233ca87bd&state=iJaAaKaa8FlubaG8jiwg6g&code_challenge=mQ7nUvEDyGinwAHvk3Yk-t3bS9T4YAjiJffwaUo8tUY&code_challenge_method=S256&redirect_uri=http%3A%2F%2F127.0.0.1%3A8989%2Flogin&scope=user-read-playback-state+user-modify-playback-state+user-read-currently-playing+app-remote-control+streaming+playlist-read-private+playlist-read-collaborative+playlist-modify-private+playlist-modify-public+user-follow-modify+user-follow-read+user-read-playback-position+user-top-read+user-read-recently-played+user-library-modify+user-library-read+user-personalized
Error: initialize new Spotify session

Caused by:
    0: get credentials
    1: Failed to exchange code for access token (Failed to parse server response)
[I] samstevens@localhoster ~ [1]> 

I have a recent, stock build of Chrome as my default browser. No extensions, no adblock, etc.

Expected behaviour
I expect to log in.

Log and backtrace

/Users/samstevens/.cache/spotify-player/spotify-player-25-09-21-14-42.backtrace was empty.

[I] samstevens@localhoster ~/.c/spotify-player> cat spotify-player-25-09-21-14-42.log
2025-09-21T18:42:15.250266Z  INFO spotify_player: Configurations: Configs { app_config: AppConfig { theme: "dracula", client_id: None, client_id_command: None, client_port: 8080, login_redirect_uri: "http://127.0.0.1:8989/login", log_folder: Some("/Users/samstevens/.cache/spotify-player"), player_event_hook_command: None, playback_format: "{status} {track} • {artists} {liked}\n{album} • {genres}\n{metadata}", playback_metadata_fields: ["repeat", "shuffle", "volume", "device"], tracks_playback_limit: 50, proxy: None, ap_port: None, app_refresh_duration_in_ms: 32, playback_refresh_duration_in_ms: 0, page_size_in_rows: 20, play_icon: "▶", pause_icon: "▌▌", liked_icon: "♥", border_type: Plain, progress_bar_type: Rectangle, progress_bar_position: Bottom, layout: LayoutConfig { library: LibraryLayoutConfig { playlist_percent: 40, album_percent: 40 }, playback_window_position: Top, playback_window_height: 6 }, genre_num: 2, enable_media_control: false, enable_streaming: Always, enable_cover_image_cache: true, default_device: "spotify-player", device: DeviceConfig { name: "spotify-player", device_type: "speaker", volume: 70, bitrate: 320, audio_cache: false, normalization: false, autoplay: false }, seek_duration_secs: 5, sort_artist_albums_by_type: false }, keymap_config: KeymapConfig { keymaps: [Keymap { key_sequence: KeySequence { keys: [None(Char('n'))] }, command: NextTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('p'))] }, command: PreviousTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('.'))] }, command: PlayRandom }, Keymap { key_sequence: KeySequence { keys: [None(Char(' '))] }, command: ResumePause }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('r'))] }, command: Repeat }, Keymap { key_sequence: KeySequence { keys: [Alt(Char('r'))] }, command: ToggleFakeTrackRepeatMode }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('s'))] }, command: Shuffle }, Keymap { key_sequence: KeySequence { keys: [None(Char('+'))] }, command: VolumeChange { offset: 5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('-'))] }, command: VolumeChange { offset: -5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('_'))] }, command: Mute }, Keymap { key_sequence: KeySequence { keys: [None(Char('>'))] }, command: SeekForward { duration: None } }, Keymap { key_sequence: KeySequence { keys: [None(Char('<'))] }, command: SeekBackward { duration: None } }, Keymap { key_sequence: KeySequence { keys: [None(Enter)] }, command: ChooseSelected }, Keymap { key_sequence: KeySequence { keys: [None(Char('r'))] }, command: RefreshPlayback }, Keymap { key_sequence: KeySequence { keys: [None(Char('/'))] }, command: Search }, Keymap { key_sequence: KeySequence { keys: [None(Char('z'))] }, command: Queue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [None(Char('Z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('g'))] }, command: JumpToHighlightTrackInContext }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char(' '))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('a'))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('a'))] }, command: ShowActionsOnCurrentTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('R'))] }, command: RestartIntegratedClient }, Keymap { key_sequence: KeySequence { keys: [None(Tab)] }, command: FocusNextWindow }, Keymap { key_sequence: KeySequence { keys: [None(BackTab)] }, command: FocusPreviousWindow }, Keymap { key_sequence: KeySequence { keys: [None(Char('T'))] }, command: SwitchTheme }, Keymap { key_sequence: KeySequence { keys: [None(Char('D'))] }, command: SwitchDevice }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('p'))] }, command: BrowseUserPlaylists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('a'))] }, command: BrowseUserFollowedArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('A'))] }, command: BrowseUserSavedAlbums }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char(' '))] }, command: CurrentlyPlayingContextPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('t'))] }, command: TopTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('r'))] }, command: RecentlyPlayedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('y'))] }, command: LikedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('L'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('l'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('l'))] }, command: LibraryPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('s'))] }, command: SearchPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('b'))] }, command: BrowsePage }, Keymap { key_sequence: KeySequence { keys: [None(Backspace)] }, command: PreviousPage }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('q'))] }, command: PreviousPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('O'))] }, command: OpenSpotifyLinkFromClipboard }, Keymap { key_sequence: KeySequence { keys: [None(Char('?'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('h'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [None(Char('q'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('c'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [None(Esc)] }, command: ClosePopup }, Keymap { key_sequence: KeySequence { keys: [None(Char('j'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('n'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Down)] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('k'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('p'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(Up)] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageUp)] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('b'))] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageDown)] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('f'))] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('g'))] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Home)] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Char('G'))] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(End)] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('t'))] }, command: SortTrackByTitle }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('a'))] }, command: SortTrackByArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('A'))] }, command: SortTrackByAlbum }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('d'))] }, command: SortTrackByDuration }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('D'))] }, command: SortTrackByAddedDate }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('r'))] }, command: ReverseTrackOrder }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('a'))] }, command: SortLibraryAlphabetically }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('r'))] }, command: SortLibraryByRecent }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('k'))] }, command: MovePlaylistItemUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('j'))] }, command: MovePlaylistItemDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('N'))] }, command: CreatePlaylist }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('c'))] }, command: JumpToCurrentTrackInContext }], actions: [] }, theme_config: ThemeConfig { themes: [Theme { name: "default", palette: Palette { background: None, foreground: None, black: Color { color: Black }, blue: Color { color: Blue }, cyan: Color { color: Cyan }, green: Color { color: Green }, magenta: Color { color: Magenta }, red: Color { color: Red }, white: Color { color: Gray }, yellow: Color { color: Yellow }, bright_black: Color { color: DarkGray }, bright_white: Color { color: White }, bright_red: Color { color: LightRed }, bright_magenta: Color { color: LightMagenta }, bright_green: Color { color: LightGreen }, bright_cyan: Color { color: LightCyan }, bright_blue: Color { color: LightBlue }, bright_yellow: Color { color: LightYellow } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_genres: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }] }, cache_folder: "/Users/samstevens/.cache/spotify-player" }
2025-09-21T18:42:15.266024Z  INFO librespot_oauth: OAuth server listening on 127.0.0.1:8989

Environment

  • OS: macOS 12.5
  • Application version: 0.21.0
  • Application features: cargo install spotify_player --locked
Originally created by @samuelstevens on GitHub (Sep 21, 2025). Original GitHub issue: https://github.com/aome510/spotify-player/issues/837 **Describe the bug** When running `spotify_player` I get `Error: initialize new Spotify session`. **To Reproduce** ``` [I] samstevens@localhoster ~ [1]> spotify_player --version spotify_player 0.21.0 [I] samstevens@localhoster ~> which spotify_player /Users/samstevens/.cargo/bin/spotify_player [I] samstevens@localhoster ~ [1]> rm -rf .cache/spotify-player/ .config/spotify-player/ [I] samstevens@localhoster ~> spotify_player No cached credentials found, please authenticate the application first. Browse to: https://accounts.spotify.com/authorize?response_type=code&client_id=65b708073fc0480ea92a077233ca87bd&state=iJaAaKaa8FlubaG8jiwg6g&code_challenge=mQ7nUvEDyGinwAHvk3Yk-t3bS9T4YAjiJffwaUo8tUY&code_challenge_method=S256&redirect_uri=http%3A%2F%2F127.0.0.1%3A8989%2Flogin&scope=user-read-playback-state+user-modify-playback-state+user-read-currently-playing+app-remote-control+streaming+playlist-read-private+playlist-read-collaborative+playlist-modify-private+playlist-modify-public+user-follow-modify+user-follow-read+user-read-playback-position+user-top-read+user-read-recently-played+user-library-modify+user-library-read+user-personalized Error: initialize new Spotify session Caused by: 0: get credentials 1: Failed to exchange code for access token (Failed to parse server response) [I] samstevens@localhoster ~ [1]> ``` I have a recent, stock build of Chrome as my default browser. No extensions, no adblock, etc. **Expected behaviour** I expect to log in. **Log and backtrace** `/Users/samstevens/.cache/spotify-player/spotify-player-25-09-21-14-42.backtrace` was empty. ``` [I] samstevens@localhoster ~/.c/spotify-player> cat spotify-player-25-09-21-14-42.log 2025-09-21T18:42:15.250266Z INFO spotify_player: Configurations: Configs { app_config: AppConfig { theme: "dracula", client_id: None, client_id_command: None, client_port: 8080, login_redirect_uri: "http://127.0.0.1:8989/login", log_folder: Some("/Users/samstevens/.cache/spotify-player"), player_event_hook_command: None, playback_format: "{status} {track} • {artists} {liked}\n{album} • {genres}\n{metadata}", playback_metadata_fields: ["repeat", "shuffle", "volume", "device"], tracks_playback_limit: 50, proxy: None, ap_port: None, app_refresh_duration_in_ms: 32, playback_refresh_duration_in_ms: 0, page_size_in_rows: 20, play_icon: "▶", pause_icon: "▌▌", liked_icon: "♥", border_type: Plain, progress_bar_type: Rectangle, progress_bar_position: Bottom, layout: LayoutConfig { library: LibraryLayoutConfig { playlist_percent: 40, album_percent: 40 }, playback_window_position: Top, playback_window_height: 6 }, genre_num: 2, enable_media_control: false, enable_streaming: Always, enable_cover_image_cache: true, default_device: "spotify-player", device: DeviceConfig { name: "spotify-player", device_type: "speaker", volume: 70, bitrate: 320, audio_cache: false, normalization: false, autoplay: false }, seek_duration_secs: 5, sort_artist_albums_by_type: false }, keymap_config: KeymapConfig { keymaps: [Keymap { key_sequence: KeySequence { keys: [None(Char('n'))] }, command: NextTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('p'))] }, command: PreviousTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('.'))] }, command: PlayRandom }, Keymap { key_sequence: KeySequence { keys: [None(Char(' '))] }, command: ResumePause }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('r'))] }, command: Repeat }, Keymap { key_sequence: KeySequence { keys: [Alt(Char('r'))] }, command: ToggleFakeTrackRepeatMode }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('s'))] }, command: Shuffle }, Keymap { key_sequence: KeySequence { keys: [None(Char('+'))] }, command: VolumeChange { offset: 5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('-'))] }, command: VolumeChange { offset: -5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('_'))] }, command: Mute }, Keymap { key_sequence: KeySequence { keys: [None(Char('>'))] }, command: SeekForward { duration: None } }, Keymap { key_sequence: KeySequence { keys: [None(Char('<'))] }, command: SeekBackward { duration: None } }, Keymap { key_sequence: KeySequence { keys: [None(Enter)] }, command: ChooseSelected }, Keymap { key_sequence: KeySequence { keys: [None(Char('r'))] }, command: RefreshPlayback }, Keymap { key_sequence: KeySequence { keys: [None(Char('/'))] }, command: Search }, Keymap { key_sequence: KeySequence { keys: [None(Char('z'))] }, command: Queue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [None(Char('Z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('g'))] }, command: JumpToHighlightTrackInContext }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char(' '))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('a'))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('a'))] }, command: ShowActionsOnCurrentTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('R'))] }, command: RestartIntegratedClient }, Keymap { key_sequence: KeySequence { keys: [None(Tab)] }, command: FocusNextWindow }, Keymap { key_sequence: KeySequence { keys: [None(BackTab)] }, command: FocusPreviousWindow }, Keymap { key_sequence: KeySequence { keys: [None(Char('T'))] }, command: SwitchTheme }, Keymap { key_sequence: KeySequence { keys: [None(Char('D'))] }, command: SwitchDevice }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('p'))] }, command: BrowseUserPlaylists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('a'))] }, command: BrowseUserFollowedArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('A'))] }, command: BrowseUserSavedAlbums }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char(' '))] }, command: CurrentlyPlayingContextPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('t'))] }, command: TopTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('r'))] }, command: RecentlyPlayedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('y'))] }, command: LikedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('L'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('l'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('l'))] }, command: LibraryPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('s'))] }, command: SearchPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('b'))] }, command: BrowsePage }, Keymap { key_sequence: KeySequence { keys: [None(Backspace)] }, command: PreviousPage }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('q'))] }, command: PreviousPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('O'))] }, command: OpenSpotifyLinkFromClipboard }, Keymap { key_sequence: KeySequence { keys: [None(Char('?'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('h'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [None(Char('q'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('c'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [None(Esc)] }, command: ClosePopup }, Keymap { key_sequence: KeySequence { keys: [None(Char('j'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('n'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Down)] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('k'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('p'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(Up)] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageUp)] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('b'))] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageDown)] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('f'))] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('g'))] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Home)] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Char('G'))] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(End)] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('t'))] }, command: SortTrackByTitle }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('a'))] }, command: SortTrackByArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('A'))] }, command: SortTrackByAlbum }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('d'))] }, command: SortTrackByDuration }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('D'))] }, command: SortTrackByAddedDate }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('r'))] }, command: ReverseTrackOrder }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('a'))] }, command: SortLibraryAlphabetically }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('r'))] }, command: SortLibraryByRecent }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('k'))] }, command: MovePlaylistItemUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('j'))] }, command: MovePlaylistItemDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('N'))] }, command: CreatePlaylist }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('c'))] }, command: JumpToCurrentTrackInContext }], actions: [] }, theme_config: ThemeConfig { themes: [Theme { name: "default", palette: Palette { background: None, foreground: None, black: Color { color: Black }, blue: Color { color: Blue }, cyan: Color { color: Cyan }, green: Color { color: Green }, magenta: Color { color: Magenta }, red: Color { color: Red }, white: Color { color: Gray }, yellow: Color { color: Yellow }, bright_black: Color { color: DarkGray }, bright_white: Color { color: White }, bright_red: Color { color: LightRed }, bright_magenta: Color { color: LightMagenta }, bright_green: Color { color: LightGreen }, bright_cyan: Color { color: LightCyan }, bright_blue: Color { color: LightBlue }, bright_yellow: Color { color: LightYellow } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_genres: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }] }, cache_folder: "/Users/samstevens/.cache/spotify-player" } 2025-09-21T18:42:15.266024Z INFO librespot_oauth: OAuth server listening on 127.0.0.1:8989 ``` **Environment** - OS: macOS 12.5 - Application version: 0.21.0 - Application features: `cargo install spotify_player --locked`
kerem 2026-03-14 14:56:43 +03:00
  • closed this issue
  • added the
    bug
    label
Author
Owner

@aome510 commented on GitHub (Sep 21, 2025):

Thanks for reporting. Based on the log and your issue description, I'm not sure why the (Failed to parse server response) error happened (first time seeing this error). I just tried to authenticate again on my machine and it still works fine for me 🤔

<!-- gh-comment-id:3316284342 --> @aome510 commented on GitHub (Sep 21, 2025): Thanks for reporting. Based on the log and your issue description, I'm not sure why the `(Failed to parse server response)` error happened (first time seeing this error). I just tried to authenticate again on my machine and it still works fine for me 🤔
Author
Owner

@samuelstevens commented on GitHub (Sep 22, 2025):

Just tried again with 0.21.1 and I have the same bug. I tried with RUST_LOG=trace and got this log:

[I] samstevens@localhoster ~> RUST_LOG=trace spotify_player
No cached credentials found, please authenticate the application first.
Browse to: https://accounts.spotify.com/authorize?response_type=code&client_id=65b708073fc0480ea92a077233ca87bd&state=3QqO7HIgsYmPr870xCxDvg&code_challenge=6eTHFJ85Q43i1Ty3DLIwhszdgmymoJQGvoRM9CEenD4&code_challenge_method=S256&redirect_uri=http%3A%2F%2F127.0.0.1%3A8989%2Flogin&scope=user-read-playback-state+user-modify-playback-state+user-read-currently-playing+app-remote-control+streaming+playlist-read-private+playlist-read-collaborative+playlist-modify-private+playlist-modify-public+user-follow-modify+user-follow-read+user-read-playback-position+user-top-read+user-read-recently-played+user-library-modify+user-library-read+user-personalized
Error: initialize new Spotify session

Caused by:
    0: get credentials
    1: Failed to exchange code for access token (Failed to parse server response)
[I] samstevens@localhoster ~ [1]> cat .cache/spotify-player/spotify-player-25-09-21-21-48.log 
2025-09-22T01:48:39.761373Z  INFO spotify_player: Configurations: Configs { app_config: AppConfig { theme: "dracula", client_id: None, client_id_command: None, client_port: 8080, login_redirect_uri: "http://127.0.0.1:8989/login", log_folder: Some("/Users/samstevens/.cache/spotify-player"), player_event_hook_command: None, playback_format: "{status} {track} • {artists} {liked}\n{album} • {genres}\n{metadata}", playback_metadata_fields: ["repeat", "shuffle", "volume", "device"], tracks_playback_limit: 50, proxy: None, ap_port: None, app_refresh_duration_in_ms: 32, playback_refresh_duration_in_ms: 0, page_size_in_rows: 20, play_icon: "▶", pause_icon: "▌▌", liked_icon: "♥", border_type: Plain, progress_bar_type: Rectangle, progress_bar_position: Bottom, layout: LayoutConfig { library: LibraryLayoutConfig { playlist_percent: 40, album_percent: 40 }, playback_window_position: Top, playback_window_height: 6 }, genre_num: 2, enable_media_control: false, enable_streaming: Always, enable_cover_image_cache: true, default_device: "spotify-player", device: DeviceConfig { name: "spotify-player", device_type: "speaker", volume: 70, bitrate: 320, audio_cache: false, normalization: false, autoplay: false }, seek_duration_secs: 5, sort_artist_albums_by_type: false }, keymap_config: KeymapConfig { keymaps: [Keymap { key_sequence: KeySequence { keys: [None(Char('n'))] }, command: NextTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('p'))] }, command: PreviousTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('.'))] }, command: PlayRandom }, Keymap { key_sequence: KeySequence { keys: [None(Char(' '))] }, command: ResumePause }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('r'))] }, command: Repeat }, Keymap { key_sequence: KeySequence { keys: [Alt(Char('r'))] }, command: ToggleFakeTrackRepeatMode }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('s'))] }, command: Shuffle }, Keymap { key_sequence: KeySequence { keys: [None(Char('+'))] }, command: VolumeChange { offset: 5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('-'))] }, command: VolumeChange { offset: -5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('_'))] }, command: Mute }, Keymap { key_sequence: KeySequence { keys: [None(Char('>'))] }, command: SeekForward { duration: None } }, Keymap { key_sequence: KeySequence { keys: [None(Char('<'))] }, command: SeekBackward { duration: None } }, Keymap { key_sequence: KeySequence { keys: [None(Enter)] }, command: ChooseSelected }, Keymap { key_sequence: KeySequence { keys: [None(Char('r'))] }, command: RefreshPlayback }, Keymap { key_sequence: KeySequence { keys: [None(Char('/'))] }, command: Search }, Keymap { key_sequence: KeySequence { keys: [None(Char('z'))] }, command: Queue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [None(Char('Z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('g'))] }, command: JumpToHighlightTrackInContext }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char(' '))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('a'))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('a'))] }, command: ShowActionsOnCurrentTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('R'))] }, command: RestartIntegratedClient }, Keymap { key_sequence: KeySequence { keys: [None(Tab)] }, command: FocusNextWindow }, Keymap { key_sequence: KeySequence { keys: [None(BackTab)] }, command: FocusPreviousWindow }, Keymap { key_sequence: KeySequence { keys: [None(Char('T'))] }, command: SwitchTheme }, Keymap { key_sequence: KeySequence { keys: [None(Char('D'))] }, command: SwitchDevice }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('p'))] }, command: BrowseUserPlaylists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('a'))] }, command: BrowseUserFollowedArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('A'))] }, command: BrowseUserSavedAlbums }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char(' '))] }, command: CurrentlyPlayingContextPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('t'))] }, command: TopTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('r'))] }, command: RecentlyPlayedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('y'))] }, command: LikedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('L'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('l'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('l'))] }, command: LibraryPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('s'))] }, command: SearchPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('b'))] }, command: BrowsePage }, Keymap { key_sequence: KeySequence { keys: [None(Backspace)] }, command: PreviousPage }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('q'))] }, command: PreviousPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('O'))] }, command: OpenSpotifyLinkFromClipboard }, Keymap { key_sequence: KeySequence { keys: [None(Char('?'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('h'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [None(Char('q'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('c'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [None(Esc)] }, command: ClosePopup }, Keymap { key_sequence: KeySequence { keys: [None(Char('j'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('n'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Down)] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('k'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('p'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(Up)] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageUp)] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('b'))] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageDown)] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('f'))] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('g'))] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Home)] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Char('G'))] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(End)] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('t'))] }, command: SortTrackByTitle }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('a'))] }, command: SortTrackByArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('A'))] }, command: SortTrackByAlbum }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('d'))] }, command: SortTrackByDuration }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('D'))] }, command: SortTrackByAddedDate }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('r'))] }, command: ReverseTrackOrder }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('a'))] }, command: SortLibraryAlphabetically }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('r'))] }, command: SortLibraryByRecent }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('k'))] }, command: MovePlaylistItemUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('j'))] }, command: MovePlaylistItemDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('N'))] }, command: CreatePlaylist }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('c'))] }, command: JumpToCurrentTrackInContext }], actions: [] }, theme_config: ThemeConfig { themes: [Theme { name: "default", palette: Palette { background: None, foreground: None, black: Color { color: Black }, blue: Color { color: Blue }, cyan: Color { color: Cyan }, green: Color { color: Green }, magenta: Color { color: Magenta }, red: Color { color: Red }, white: Color { color: Gray }, yellow: Color { color: Yellow }, bright_black: Color { color: DarkGray }, bright_white: Color { color: White }, bright_red: Color { color: LightRed }, bright_magenta: Color { color: LightMagenta }, bright_green: Color { color: LightGreen }, bright_cyan: Color { color: LightCyan }, bright_blue: Color { color: LightBlue }, bright_yellow: Color { color: LightYellow } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_genres: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }] }, cache_folder: "/Users/samstevens/.cache/spotify-player" }
2025-09-22T01:48:39.774653Z DEBUG librespot_core::session: new Session
2025-09-22T01:48:39.777979Z  INFO librespot_oauth: OAuth server listening on 127.0.0.1:8989
2025-09-22T01:48:41.439951Z TRACE librespot_oauth: Exchange AuthorizationCode([redacted]) for access token
2025-09-22T01:48:41.450243Z TRACE reqwest::blocking::client: (ThreadId(12)) start runtime::block_on
2025-09-22T01:48:41.450129Z TRACE reqwest::blocking::wait: (ThreadId(11)) park without timeout
2025-09-22T01:48:41.453735Z TRACE reqwest::blocking::wait: wait at most 30s
2025-09-22T01:48:41.454033Z TRACE reqwest::blocking::wait: (ThreadId(11)) park timeout 29.999809375s
2025-09-22T01:48:41.455643Z TRACE hyper_util::client::legacy::pool: checkout waiting for idle connection: ("https", accounts.spotify.com)
2025-09-22T01:48:41.455910Z DEBUG reqwest::connect: starting new connection: https://accounts.spotify.com/
2025-09-22T01:48:41.456582Z TRACE hyper_util::client::legacy::connect::http: Http::connect; scheme=Some("https"), host=Some("accounts.spotify.com"), port=None
2025-09-22T01:48:41.463426Z DEBUG hyper_util::client::legacy::connect::http: connecting to 35.186.224.24:443
2025-09-22T01:48:41.463762Z TRACE mio::poll: registering event source with poller: token=Token(140701026245888), interests=READABLE | WRITABLE
2025-09-22T01:48:41.487911Z DEBUG hyper_util::client::legacy::connect::http: connected to 35.186.224.24:443
2025-09-22T01:48:41.573718Z TRACE hyper_util::client::legacy::client: http1 handshake complete, spawning background dispatcher task
2025-09-22T01:48:41.573814Z TRACE hyper_util::client::legacy::client: waiting for connection to be ready
2025-09-22T01:48:41.574151Z TRACE hyper_util::client::legacy::client: connection is ready
2025-09-22T01:48:41.574281Z TRACE hyper_util::client::legacy::pool: checkout dropped for ("https", accounts.spotify.com)
2025-09-22T01:48:41.702568Z TRACE mio::poll: deregistering event source from poller
2025-09-22T01:48:41.703271Z TRACE reqwest::retry: shouldn't retry!
2025-09-22T01:48:41.703486Z TRACE reqwest::blocking::wait: wait at most 30s
2025-09-22T01:48:41.703610Z TRACE reqwest::blocking::wait: wait at most 30s
2025-09-22T01:48:41.703645Z TRACE reqwest::blocking::wait: wait at most 30s
2025-09-22T01:48:41.703675Z TRACE reqwest::blocking::wait: wait at most 30s
2025-09-22T01:48:41.703702Z TRACE reqwest::blocking::wait: wait at most 30s
2025-09-22T01:48:41.703727Z TRACE reqwest::blocking::wait: wait at most 30s
2025-09-22T01:48:41.705283Z TRACE reqwest::blocking::client: closing runtime thread (ThreadId(12))
2025-09-22T01:48:41.705311Z TRACE reqwest::blocking::client: signaled close for runtime thread (ThreadId(12))
2025-09-22T01:48:41.705351Z TRACE reqwest::blocking::client: (ThreadId(12)) Receiver is shutdown
2025-09-22T01:48:41.705388Z TRACE reqwest::blocking::client: (ThreadId(12)) end runtime::block_on
2025-09-22T01:48:41.705748Z TRACE reqwest::blocking::client: (ThreadId(12)) finished
2025-09-22T01:48:41.705949Z TRACE reqwest::blocking::client: closed runtime thread (ThreadId(12))
2025-09-22T01:48:41.706308Z DEBUG librespot_core::session: drop Session

I can provide additional details if possible.

<!-- gh-comment-id:3316493873 --> @samuelstevens commented on GitHub (Sep 22, 2025): Just tried again with 0.21.1 and I have the same bug. I tried with `RUST_LOG=trace` and got this log: ``` [I] samstevens@localhoster ~> RUST_LOG=trace spotify_player No cached credentials found, please authenticate the application first. Browse to: https://accounts.spotify.com/authorize?response_type=code&client_id=65b708073fc0480ea92a077233ca87bd&state=3QqO7HIgsYmPr870xCxDvg&code_challenge=6eTHFJ85Q43i1Ty3DLIwhszdgmymoJQGvoRM9CEenD4&code_challenge_method=S256&redirect_uri=http%3A%2F%2F127.0.0.1%3A8989%2Flogin&scope=user-read-playback-state+user-modify-playback-state+user-read-currently-playing+app-remote-control+streaming+playlist-read-private+playlist-read-collaborative+playlist-modify-private+playlist-modify-public+user-follow-modify+user-follow-read+user-read-playback-position+user-top-read+user-read-recently-played+user-library-modify+user-library-read+user-personalized Error: initialize new Spotify session Caused by: 0: get credentials 1: Failed to exchange code for access token (Failed to parse server response) [I] samstevens@localhoster ~ [1]> cat .cache/spotify-player/spotify-player-25-09-21-21-48.log 2025-09-22T01:48:39.761373Z INFO spotify_player: Configurations: Configs { app_config: AppConfig { theme: "dracula", client_id: None, client_id_command: None, client_port: 8080, login_redirect_uri: "http://127.0.0.1:8989/login", log_folder: Some("/Users/samstevens/.cache/spotify-player"), player_event_hook_command: None, playback_format: "{status} {track} • {artists} {liked}\n{album} • {genres}\n{metadata}", playback_metadata_fields: ["repeat", "shuffle", "volume", "device"], tracks_playback_limit: 50, proxy: None, ap_port: None, app_refresh_duration_in_ms: 32, playback_refresh_duration_in_ms: 0, page_size_in_rows: 20, play_icon: "▶", pause_icon: "▌▌", liked_icon: "♥", border_type: Plain, progress_bar_type: Rectangle, progress_bar_position: Bottom, layout: LayoutConfig { library: LibraryLayoutConfig { playlist_percent: 40, album_percent: 40 }, playback_window_position: Top, playback_window_height: 6 }, genre_num: 2, enable_media_control: false, enable_streaming: Always, enable_cover_image_cache: true, default_device: "spotify-player", device: DeviceConfig { name: "spotify-player", device_type: "speaker", volume: 70, bitrate: 320, audio_cache: false, normalization: false, autoplay: false }, seek_duration_secs: 5, sort_artist_albums_by_type: false }, keymap_config: KeymapConfig { keymaps: [Keymap { key_sequence: KeySequence { keys: [None(Char('n'))] }, command: NextTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('p'))] }, command: PreviousTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('.'))] }, command: PlayRandom }, Keymap { key_sequence: KeySequence { keys: [None(Char(' '))] }, command: ResumePause }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('r'))] }, command: Repeat }, Keymap { key_sequence: KeySequence { keys: [Alt(Char('r'))] }, command: ToggleFakeTrackRepeatMode }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('s'))] }, command: Shuffle }, Keymap { key_sequence: KeySequence { keys: [None(Char('+'))] }, command: VolumeChange { offset: 5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('-'))] }, command: VolumeChange { offset: -5 } }, Keymap { key_sequence: KeySequence { keys: [None(Char('_'))] }, command: Mute }, Keymap { key_sequence: KeySequence { keys: [None(Char('>'))] }, command: SeekForward { duration: None } }, Keymap { key_sequence: KeySequence { keys: [None(Char('<'))] }, command: SeekBackward { duration: None } }, Keymap { key_sequence: KeySequence { keys: [None(Enter)] }, command: ChooseSelected }, Keymap { key_sequence: KeySequence { keys: [None(Char('r'))] }, command: RefreshPlayback }, Keymap { key_sequence: KeySequence { keys: [None(Char('/'))] }, command: Search }, Keymap { key_sequence: KeySequence { keys: [None(Char('z'))] }, command: Queue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [None(Char('Z'))] }, command: AddSelectedItemToQueue }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('g'))] }, command: JumpToHighlightTrackInContext }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char(' '))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('a'))] }, command: ShowActionsOnSelectedItem }, Keymap { key_sequence: KeySequence { keys: [None(Char('a'))] }, command: ShowActionsOnCurrentTrack }, Keymap { key_sequence: KeySequence { keys: [None(Char('R'))] }, command: RestartIntegratedClient }, Keymap { key_sequence: KeySequence { keys: [None(Tab)] }, command: FocusNextWindow }, Keymap { key_sequence: KeySequence { keys: [None(BackTab)] }, command: FocusPreviousWindow }, Keymap { key_sequence: KeySequence { keys: [None(Char('T'))] }, command: SwitchTheme }, Keymap { key_sequence: KeySequence { keys: [None(Char('D'))] }, command: SwitchDevice }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('p'))] }, command: BrowseUserPlaylists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('a'))] }, command: BrowseUserFollowedArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('u')), None(Char('A'))] }, command: BrowseUserSavedAlbums }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char(' '))] }, command: CurrentlyPlayingContextPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('t'))] }, command: TopTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('r'))] }, command: RecentlyPlayedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('y'))] }, command: LikedTrackPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('L'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('l'))] }, command: LyricsPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('l'))] }, command: LibraryPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('s'))] }, command: SearchPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('b'))] }, command: BrowsePage }, Keymap { key_sequence: KeySequence { keys: [None(Backspace)] }, command: PreviousPage }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('q'))] }, command: PreviousPage }, Keymap { key_sequence: KeySequence { keys: [None(Char('O'))] }, command: OpenSpotifyLinkFromClipboard }, Keymap { key_sequence: KeySequence { keys: [None(Char('?'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('h'))] }, command: OpenCommandHelp }, Keymap { key_sequence: KeySequence { keys: [None(Char('q'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('c'))] }, command: Quit }, Keymap { key_sequence: KeySequence { keys: [None(Esc)] }, command: ClosePopup }, Keymap { key_sequence: KeySequence { keys: [None(Char('j'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('n'))] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Down)] }, command: SelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('k'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('p'))] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(Up)] }, command: SelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageUp)] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('b'))] }, command: PageSelectPreviousOrScrollUp }, Keymap { key_sequence: KeySequence { keys: [None(PageDown)] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('f'))] }, command: PageSelectNextOrScrollDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('g'))] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Home)] }, command: SelectFirstOrScrollToTop }, Keymap { key_sequence: KeySequence { keys: [None(Char('G'))] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(End)] }, command: SelectLastOrScrollToBottom }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('t'))] }, command: SortTrackByTitle }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('a'))] }, command: SortTrackByArtists }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('A'))] }, command: SortTrackByAlbum }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('d'))] }, command: SortTrackByDuration }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('D'))] }, command: SortTrackByAddedDate }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('r'))] }, command: ReverseTrackOrder }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('a'))] }, command: SortLibraryAlphabetically }, Keymap { key_sequence: KeySequence { keys: [None(Char('s')), None(Char('l')), None(Char('r'))] }, command: SortLibraryByRecent }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('k'))] }, command: MovePlaylistItemUp }, Keymap { key_sequence: KeySequence { keys: [Ctrl(Char('j'))] }, command: MovePlaylistItemDown }, Keymap { key_sequence: KeySequence { keys: [None(Char('N'))] }, command: CreatePlaylist }, Keymap { key_sequence: KeySequence { keys: [None(Char('g')), None(Char('c'))] }, command: JumpToCurrentTrackInContext }], actions: [] }, theme_config: ThemeConfig { themes: [Theme { name: "default", palette: Palette { background: None, foreground: None, black: Color { color: Black }, blue: Color { color: Blue }, cyan: Color { color: Cyan }, green: Color { color: Green }, magenta: Color { color: Magenta }, red: Color { color: Red }, white: Color { color: Gray }, yellow: Color { color: Yellow }, bright_black: Color { color: DarkGray }, bright_white: Color { color: White }, bright_red: Color { color: LightRed }, bright_magenta: Color { color: LightMagenta }, bright_green: Color { color: LightGreen }, bright_cyan: Color { color: LightCyan }, bright_blue: Color { color: LightBlue }, bright_yellow: Color { color: LightYellow } }, component_style: ComponentStyle { block_title: None, border: None, playback_status: None, playback_track: None, playback_artists: None, playback_album: None, playback_genres: None, playback_metadata: None, playback_progress_bar: None, playback_progress_bar_unfilled: None, current_playing: None, page_desc: None, playlist_desc: None, table_header: None, selection: None, secondary_row: None, like: None, lyrics_played: None, lyrics_playing: None } }] }, cache_folder: "/Users/samstevens/.cache/spotify-player" } 2025-09-22T01:48:39.774653Z DEBUG librespot_core::session: new Session 2025-09-22T01:48:39.777979Z INFO librespot_oauth: OAuth server listening on 127.0.0.1:8989 2025-09-22T01:48:41.439951Z TRACE librespot_oauth: Exchange AuthorizationCode([redacted]) for access token 2025-09-22T01:48:41.450243Z TRACE reqwest::blocking::client: (ThreadId(12)) start runtime::block_on 2025-09-22T01:48:41.450129Z TRACE reqwest::blocking::wait: (ThreadId(11)) park without timeout 2025-09-22T01:48:41.453735Z TRACE reqwest::blocking::wait: wait at most 30s 2025-09-22T01:48:41.454033Z TRACE reqwest::blocking::wait: (ThreadId(11)) park timeout 29.999809375s 2025-09-22T01:48:41.455643Z TRACE hyper_util::client::legacy::pool: checkout waiting for idle connection: ("https", accounts.spotify.com) 2025-09-22T01:48:41.455910Z DEBUG reqwest::connect: starting new connection: https://accounts.spotify.com/ 2025-09-22T01:48:41.456582Z TRACE hyper_util::client::legacy::connect::http: Http::connect; scheme=Some("https"), host=Some("accounts.spotify.com"), port=None 2025-09-22T01:48:41.463426Z DEBUG hyper_util::client::legacy::connect::http: connecting to 35.186.224.24:443 2025-09-22T01:48:41.463762Z TRACE mio::poll: registering event source with poller: token=Token(140701026245888), interests=READABLE | WRITABLE 2025-09-22T01:48:41.487911Z DEBUG hyper_util::client::legacy::connect::http: connected to 35.186.224.24:443 2025-09-22T01:48:41.573718Z TRACE hyper_util::client::legacy::client: http1 handshake complete, spawning background dispatcher task 2025-09-22T01:48:41.573814Z TRACE hyper_util::client::legacy::client: waiting for connection to be ready 2025-09-22T01:48:41.574151Z TRACE hyper_util::client::legacy::client: connection is ready 2025-09-22T01:48:41.574281Z TRACE hyper_util::client::legacy::pool: checkout dropped for ("https", accounts.spotify.com) 2025-09-22T01:48:41.702568Z TRACE mio::poll: deregistering event source from poller 2025-09-22T01:48:41.703271Z TRACE reqwest::retry: shouldn't retry! 2025-09-22T01:48:41.703486Z TRACE reqwest::blocking::wait: wait at most 30s 2025-09-22T01:48:41.703610Z TRACE reqwest::blocking::wait: wait at most 30s 2025-09-22T01:48:41.703645Z TRACE reqwest::blocking::wait: wait at most 30s 2025-09-22T01:48:41.703675Z TRACE reqwest::blocking::wait: wait at most 30s 2025-09-22T01:48:41.703702Z TRACE reqwest::blocking::wait: wait at most 30s 2025-09-22T01:48:41.703727Z TRACE reqwest::blocking::wait: wait at most 30s 2025-09-22T01:48:41.705283Z TRACE reqwest::blocking::client: closing runtime thread (ThreadId(12)) 2025-09-22T01:48:41.705311Z TRACE reqwest::blocking::client: signaled close for runtime thread (ThreadId(12)) 2025-09-22T01:48:41.705351Z TRACE reqwest::blocking::client: (ThreadId(12)) Receiver is shutdown 2025-09-22T01:48:41.705388Z TRACE reqwest::blocking::client: (ThreadId(12)) end runtime::block_on 2025-09-22T01:48:41.705748Z TRACE reqwest::blocking::client: (ThreadId(12)) finished 2025-09-22T01:48:41.705949Z TRACE reqwest::blocking::client: closed runtime thread (ThreadId(12)) 2025-09-22T01:48:41.706308Z DEBUG librespot_core::session: drop Session ``` I can provide additional details if possible.
Author
Owner

@kabaskill commented on GitHub (Sep 22, 2025):

I had a similar issue where my session couldn't be created because of bad credentials. Then I noticed that my account is logged out from other instances (phone, pc etc.). Might be some account protection from Spotify because I've been using the CLI extensively since I discovered it.

However, after logging in again and deleting the cache of spotify-player, I was able log in again to the CLI. The cache of the CLI is kept here:

$HOME/.cache/spotify-player

for reference, I built the app from source because fzf feature for the cargo version didn't work for me.

<!-- gh-comment-id:3321454295 --> @kabaskill commented on GitHub (Sep 22, 2025): I had a similar issue where my session couldn't be created because of bad credentials. Then I noticed that my account is logged out from other instances (phone, pc etc.). Might be some account protection from Spotify because I've been using the CLI extensively since I discovered it. However, after logging in again and deleting the cache of spotify-player, I was able log in again to the CLI. The cache of the CLI is kept here: ``` $HOME/.cache/spotify-player ``` for reference, I built the app from source because fzf feature for the cargo version didn't work for me.
Author
Owner

@stoicz commented on GitHub (Oct 22, 2025):

i had a similar issue, where i could not start the application because it was unable to init a new spotify session

rm -rf $HOME/.cache/spotify-player/* did the trick

<!-- gh-comment-id:3431952510 --> @stoicz commented on GitHub (Oct 22, 2025): i had a similar issue, where i could not start the application because it was unable to init a new spotify session `rm -rf $HOME/.cache/spotify-player/*` did the trick
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/spotify-player#1440
No description provided.