[GH-ISSUE #203] Crashes when connecting if playlist has local files #140

Closed
opened 2026-02-27 19:29:03 +03:00 by kerem · 1 comment
Owner

Originally created by @DragRedSim on GitHub (Apr 18, 2018).
Original GitHub issue: https://github.com/librespot-org/librespot/issues/203

As briefly mentioned on the Gitter, https://gitter.im/librespot-org/spotify-connect-resources?at=5aa9807cf3f6d24c687603bf

I ran into this error myself today, running the volspotconnect2 plugin for Volumio, however felt it was more appropriate to report here since the error is not documented anywhere else, and the codebase used is from here, simply packaged for that platform.

When attempting to connect to the client, if a file local to the current player (from which is currently playing) is being played, the connection will fail and librespot will panic and fail. This also occurs if the controlling device attempts to change track, if one of the options is a local file.

Example log, from sudo journalctl -f:

Apr 18 12:53:47 drs-airplay volumio[26920]: thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: SpotifyIdError', /checkout/src/libcore/result.rs:916:5
Apr 18 12:53:47 drs-airplay volumio[26920]: stack backtrace:
Apr 18 12:53:48 drs-airplay volumio[26920]: 0:   0x8ba6b7 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h280c621ec0336843
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
Apr 18 12:53:48 drs-airplay volumio[26920]: 1:   0x8c49eb - std::sys_common::backtrace::print::h5bb167d48668dac9
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/sys_common/backtrace.rs:68
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/sys_common/backtrace.rs:57
Apr 18 12:53:48 drs-airplay volumio[26920]: 2:   0x8b2f3f - std::panicking::default_hook::{{closure}}::hccf3b2e1cc48596f
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:381
Apr 18 12:53:48 drs-airplay volumio[26920]: 3:   0x8b2a1b - std::panicking::default_hook::h338b1189515ccc69
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:397
Apr 18 12:53:48 drs-airplay volumio[26920]: 4:   0x8b33eb - std::panicking::rust_panic_with_hook::h5d950fb4a856fba5
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:577
Apr 18 12:53:48 drs-airplay volumio[26920]: 5:   0x8b328f - std::panicking::begin_panic::h7a5157aecf168062
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:538
Apr 18 12:53:48 drs-airplay volumio[26920]: 6:   0x8b31bb - std::panicking::begin_panic_fmt::hc44606ee40e9a98e
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:522
Apr 18 12:53:48 drs-airplay volumio[26920]: 7:   0x8b3163 - rust_begin_unwind
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:498
Apr 18 12:53:48 drs-airplay volumio[26920]: 8:   0x91c39b - core::panicking::panic_fmt::h68e7715928be641f
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libcore/panicking.rs:71
Apr 18 12:53:48 drs-airplay volumio[26920]: 9:   0x51f56f - core::result::unwrap_failed::h19aee870ade67768
Apr 18 12:53:48 drs-airplay volumio[26920]: 10:   0x5046bf - librespot_connect::spirc::SpircTask::load_track::h94a8ba9d524c0b36
Apr 18 12:53:48 drs-airplay volumio[26920]: 11:   0x50301f - <librespot_connect::spirc::SpircTask as futures::future::Future>::poll::h12141582595b4c57
Apr 18 12:53:48 drs-airplay volumio[26920]: 12:   0x489fff - <librespot::Main as futures::future::Future>::poll::hac7f09e8dbe917a6
Apr 18 12:53:48 drs-airplay volumio[26920]: 13:   0x48263f - futures::task_impl::std::set::hf89c53c05a6c2de6
Apr 18 12:53:48 drs-airplay volumio[26920]: 14:   0x49be7f - tokio_core::reactor::Core::run::ha9539a4e4ca6d59b
Apr 18 12:53:48 drs-airplay volumio[26920]: 15:   0x48bac3 - librespot::main::hdbb8ab6b412016c5
Apr 18 12:53:48 drs-airplay volumio[26920]: 16:   0x49cd4b - std::rt::lang_start::{{closure}}::h1ae8c7c248c5cc5a
Apr 18 12:53:48 drs-airplay volumio[26920]: 17:   0x8b3093 - std::panicking::try::do_call::h9cb586bd57bb9d3d
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/rt.rs:59
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:480
Apr 18 12:53:48 drs-airplay volumio[26920]: 18:   0x8d9e2b - __rust_maybe_catch_panic
Apr 18 12:53:48 drs-airplay systemd[1]: volspotconnect2.service: main process exited, code=exited, status=101/n/a
Apr 18 12:53:48 drs-airplay systemd[1]: Unit volspotconnect2.service entered failed state.
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libpanic_unwind/lib.rs:101
Apr 18 12:53:48 drs-airplay volumio[26920]: 19:   0x8ba343 - std::rt::lang_start_internal::h104139376fdb9ead
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:459
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panic.rs:365
Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/rt.rs:58
Apr 18 12:53:48 drs-airplay volumio[26920]: 20:   0x48c5a3 - main
Apr 18 12:53:48 drs-airplay volumio[26920]: 21: 0xb6d18293 - __libc_start_main
Apr 18 12:53:48 drs-airplay volumio[26920]: INFO:librespot_playback::player: Shutting down player thread ...
Apr 18 12:53:50 drs-airplay systemd[1]: volspotconnect2.service holdoff time over, scheduling restart.
Apr 18 12:53:50 drs-airplay systemd[1]: Stopping Volspotconnect2 Daemon...
Apr 18 12:53:50 drs-airplay systemd[1]: Starting Volspotconnect2 Daemon...
Apr 18 12:53:50 drs-airplay systemd[1]: Started Volspotconnect2 Daemon.
Apr 18 12:53:50 drs-airplay volumio[26992]: INFO:librespot: librespot 323aea3 (2018-03-17). Built on 2018-03-18. Build ID: 9RNT9vYq
Apr 18 12:53:51 drs-airplay volumio[26992]: INFO:librespot_core::session: Connecting to AP "gae2-accesspoint-b-j49h.ap.spotify.com:4070"
Apr 18 12:53:52 drs-airplay volumio[26992]: INFO:librespot_core::session: Authenticated as "*username redacted*" !
Apr 18 12:53:52 drs-airplay volumio[26992]: INFO:librespot_core::session: Country: "AU"
Apr 18 12:53:52 drs-airplay volumio[26992]: INFO:librespot_playback::player: new Player[0]
Apr 18 12:53:52 drs-airplay volumio[26992]: INFO:librespot_playback::audio_backend::alsa: Using alsa sink

I understand that there may not be a defined behaviour for this case in the protocol, however it would be better to handle such errors without crashing the entire librespot program if possible, even if it is by simply ignoring such files.

Originally created by @DragRedSim on GitHub (Apr 18, 2018). Original GitHub issue: https://github.com/librespot-org/librespot/issues/203 As briefly mentioned on the Gitter, https://gitter.im/librespot-org/spotify-connect-resources?at=5aa9807cf3f6d24c687603bf I ran into this error myself today, running the volspotconnect2 plugin for Volumio, however felt it was more appropriate to report here since the error is not documented anywhere else, and the codebase used is from here, simply packaged for that platform. When attempting to connect to the client, if a file local to the current player (from which is currently playing) is being played, the connection will fail and librespot will panic and fail. This also occurs if the controlling device attempts to change track, if one of the options is a local file. Example log, from `sudo journalctl -f`: ``` Apr 18 12:53:47 drs-airplay volumio[26920]: thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: SpotifyIdError', /checkout/src/libcore/result.rs:916:5 Apr 18 12:53:47 drs-airplay volumio[26920]: stack backtrace: Apr 18 12:53:48 drs-airplay volumio[26920]: 0: 0x8ba6b7 - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h280c621ec0336843 Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:49 Apr 18 12:53:48 drs-airplay volumio[26920]: 1: 0x8c49eb - std::sys_common::backtrace::print::h5bb167d48668dac9 Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/sys_common/backtrace.rs:68 Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/sys_common/backtrace.rs:57 Apr 18 12:53:48 drs-airplay volumio[26920]: 2: 0x8b2f3f - std::panicking::default_hook::{{closure}}::hccf3b2e1cc48596f Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:381 Apr 18 12:53:48 drs-airplay volumio[26920]: 3: 0x8b2a1b - std::panicking::default_hook::h338b1189515ccc69 Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:397 Apr 18 12:53:48 drs-airplay volumio[26920]: 4: 0x8b33eb - std::panicking::rust_panic_with_hook::h5d950fb4a856fba5 Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:577 Apr 18 12:53:48 drs-airplay volumio[26920]: 5: 0x8b328f - std::panicking::begin_panic::h7a5157aecf168062 Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:538 Apr 18 12:53:48 drs-airplay volumio[26920]: 6: 0x8b31bb - std::panicking::begin_panic_fmt::hc44606ee40e9a98e Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:522 Apr 18 12:53:48 drs-airplay volumio[26920]: 7: 0x8b3163 - rust_begin_unwind Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:498 Apr 18 12:53:48 drs-airplay volumio[26920]: 8: 0x91c39b - core::panicking::panic_fmt::h68e7715928be641f Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libcore/panicking.rs:71 Apr 18 12:53:48 drs-airplay volumio[26920]: 9: 0x51f56f - core::result::unwrap_failed::h19aee870ade67768 Apr 18 12:53:48 drs-airplay volumio[26920]: 10: 0x5046bf - librespot_connect::spirc::SpircTask::load_track::h94a8ba9d524c0b36 Apr 18 12:53:48 drs-airplay volumio[26920]: 11: 0x50301f - <librespot_connect::spirc::SpircTask as futures::future::Future>::poll::h12141582595b4c57 Apr 18 12:53:48 drs-airplay volumio[26920]: 12: 0x489fff - <librespot::Main as futures::future::Future>::poll::hac7f09e8dbe917a6 Apr 18 12:53:48 drs-airplay volumio[26920]: 13: 0x48263f - futures::task_impl::std::set::hf89c53c05a6c2de6 Apr 18 12:53:48 drs-airplay volumio[26920]: 14: 0x49be7f - tokio_core::reactor::Core::run::ha9539a4e4ca6d59b Apr 18 12:53:48 drs-airplay volumio[26920]: 15: 0x48bac3 - librespot::main::hdbb8ab6b412016c5 Apr 18 12:53:48 drs-airplay volumio[26920]: 16: 0x49cd4b - std::rt::lang_start::{{closure}}::h1ae8c7c248c5cc5a Apr 18 12:53:48 drs-airplay volumio[26920]: 17: 0x8b3093 - std::panicking::try::do_call::h9cb586bd57bb9d3d Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/rt.rs:59 Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:480 Apr 18 12:53:48 drs-airplay volumio[26920]: 18: 0x8d9e2b - __rust_maybe_catch_panic Apr 18 12:53:48 drs-airplay systemd[1]: volspotconnect2.service: main process exited, code=exited, status=101/n/a Apr 18 12:53:48 drs-airplay systemd[1]: Unit volspotconnect2.service entered failed state. Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libpanic_unwind/lib.rs:101 Apr 18 12:53:48 drs-airplay volumio[26920]: 19: 0x8ba343 - std::rt::lang_start_internal::h104139376fdb9ead Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panicking.rs:459 Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/panic.rs:365 Apr 18 12:53:48 drs-airplay volumio[26920]: at /checkout/src/libstd/rt.rs:58 Apr 18 12:53:48 drs-airplay volumio[26920]: 20: 0x48c5a3 - main Apr 18 12:53:48 drs-airplay volumio[26920]: 21: 0xb6d18293 - __libc_start_main Apr 18 12:53:48 drs-airplay volumio[26920]: INFO:librespot_playback::player: Shutting down player thread ... Apr 18 12:53:50 drs-airplay systemd[1]: volspotconnect2.service holdoff time over, scheduling restart. Apr 18 12:53:50 drs-airplay systemd[1]: Stopping Volspotconnect2 Daemon... Apr 18 12:53:50 drs-airplay systemd[1]: Starting Volspotconnect2 Daemon... Apr 18 12:53:50 drs-airplay systemd[1]: Started Volspotconnect2 Daemon. Apr 18 12:53:50 drs-airplay volumio[26992]: INFO:librespot: librespot 323aea3 (2018-03-17). Built on 2018-03-18. Build ID: 9RNT9vYq Apr 18 12:53:51 drs-airplay volumio[26992]: INFO:librespot_core::session: Connecting to AP "gae2-accesspoint-b-j49h.ap.spotify.com:4070" Apr 18 12:53:52 drs-airplay volumio[26992]: INFO:librespot_core::session: Authenticated as "*username redacted*" ! Apr 18 12:53:52 drs-airplay volumio[26992]: INFO:librespot_core::session: Country: "AU" Apr 18 12:53:52 drs-airplay volumio[26992]: INFO:librespot_playback::player: new Player[0] Apr 18 12:53:52 drs-airplay volumio[26992]: INFO:librespot_playback::audio_backend::alsa: Using alsa sink ``` I understand that there may not be a defined behaviour for this case in the protocol, however it would be better to handle such errors without crashing the entire librespot program if possible, even if it is by simply ignoring such files.
kerem 2026-02-27 19:29:03 +03:00
Author
Owner

@ashthespy commented on GitHub (Nov 6, 2019):

https://github.com/librespot-org/librespot/pull/381/commits/508c7e2b260c041048373f12b33fca7702c4fe13 Should fix this:

[2019-11-06T17:39:50Z DEBUG librespot_connect::spirc] Malformed or no gid, attempting to parse URI <spotify:local::::4>
[2019-11-06T17:39:50Z WARN  librespot_connect::spirc] Skipping track <"spotify:local::::4"> at position [11] of 12
<!-- gh-comment-id:550421215 --> @ashthespy commented on GitHub (Nov 6, 2019): https://github.com/librespot-org/librespot/pull/381/commits/508c7e2b260c041048373f12b33fca7702c4fe13 Should fix this: ```shell [2019-11-06T17:39:50Z DEBUG librespot_connect::spirc] Malformed or no gid, attempting to parse URI <spotify:local::::4> [2019-11-06T17:39:50Z WARN librespot_connect::spirc] Skipping track <"spotify:local::::4"> at position [11] of 12 ```
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/librespot#140
No description provided.