Skip to content

Nothing Plays Unless From Local Library #2966

@bobgrey1997

Description

@bobgrey1997

Is there an existing issue for this? (Please read the description)

  • I have searched the existing issues

Current Behavior

When searching songs and playing from the results, the song never plays. Even after it finishes loading, it stays at 0:00, and no audio plays. When playing from a playlist, album, etc the same occurs, but after a few seconds of nothing playing, it skips to the next song, loads, stays at 0:00, no audio for a few seconds, and skips again.

Downloads also never start or finish, or even have an error (which it never actually provides an error message, just a red triangle that can not be interacted with).

Only local files can be played, but must be downloaded elsewhere.

Expected Behavior

What is expected of this question? The expected behavior is that a music app should play music, no?

Steps to reproduce

1: Open app
2: Find a song that isn't a local file stored on your device
3: Attempt to play it

Logs

Logs
es/metadata/endpoints/search.dart:146)
<asynchronous suspension>
#6      MetadataPluginSearchTracksNotifier.fetch (package:spotube/provider/metadata_plugin/search/tracks.dart:24)
<asynchronous suspension>
#7      MetadataPluginSearchTracksNotifier.build (package:spotube/provider/metadata_plugin/search/tracks.dart:38)
<asynchronous suspension>
#8      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:52:32.779909]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 401 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 401 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      HttpClient.request (package:hetu_std/http/http.dart:146)
<asynchronous suspension>
#2      HttpClient.post (package:hetu_std/http/http.dart:189)
<asynchronous suspension>
#3      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#4      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#5      MetadataPluginSearchEndpoint.tracks (package:spotube/services/metadata/endpoints/search.dart:146)
<asynchronous suspension>
#6      MetadataPluginSearchTracksNotifier.fetch (package:spotube/provider/metadata_plugin/search/tracks.dart:24)
<asynchronous suspension>
#7      MetadataPluginSearchTracksNotifier.build (package:spotube/provider/metadata_plugin/search/tracks.dart:38)
<asynchronous suspension>
#8      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:52:33.019170]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 401 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 401 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      HttpClient.request (package:hetu_std/http/http.dart:146)
<asynchronous suspension>
#2      HttpClient.post (package:hetu_std/http/http.dart:189)
<asynchronous suspension>
#3      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#4      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#5      MetadataPluginSearchEndpoint.tracks (package:spotube/services/metadata/endpoints/search.dart:146)
<asynchronous suspension>
#6      MetadataPluginSearchTracksNotifier.fetch (package:spotube/provider/metadata_plugin/search/tracks.dart:24)
<asynchronous suspension>
#7      MetadataPluginSearchTracksNotifier.build (package:spotube/provider/metadata_plugin/search/tracks.dart:38)
<asynchronous suspension>
#8      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:52:37.140150]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 401 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 401 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      HttpClient.request (package:hetu_std/http/http.dart:146)
<asynchronous suspension>
#2      HttpClient.post (package:hetu_std/http/http.dart:189)
<asynchronous suspension>
#3      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#4      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#5      MetadataPluginAlbumEndpoint.releases (package:spotube/services/metadata/endpoints/album.dart:47)
<asynchronous suspension>
#6      MetadataPluginAlbumReleasesNotifier.fetch (package:spotube/provider/metadata_plugin/album/releases.dart:13)
<asynchronous suspension>
#7      MetadataPluginAlbumReleasesNotifier.build (package:spotube/provider/metadata_plugin/album/releases.dart:21)
<asynchronous suspension>
#8      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:52:37.204250]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 401 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 401 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      HttpClient.request (package:hetu_std/http/http.dart:146)
<asynchronous suspension>
#2      HttpClient.post (package:hetu_std/http/http.dart:189)
<asynchronous suspension>
#3      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#4      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#5      MetadataPluginBrowseEndpoint.sections (package:spotube/services/metadata/endpoints/browse.dart:18)
<asynchronous suspension>
#6      MetadataPluginBrowseSectionsNotifier.fetch (package:spotube/provider/metadata_plugin/browse/sections.dart:14)
<asynchronous suspension>
#7      MetadataPluginBrowseSectionsNotifier.build (package:spotube/provider/metadata_plugin/browse/sections.dart:23)
<asynchronous suspension>
#8      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:01.849900]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
<asynchronous suspension>
#2      ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
<asynchronous suspension>
#3      RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:109)
<asynchronous suspension>
#4      RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
<asynchronous suspension>
#5      Router.call (package:shelf_router/src/router.dart:184)
<asynchronous suspension>
#6      handleRequest (package:shelf/shelf_io.dart:140)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:05.898891]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
<asynchronous suspension>
#2      ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
<asynchronous suspension>
#3      RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:109)
<asynchronous suspension>
#4      RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
<asynchronous suspension>
#5      Router.call (package:shelf_router/src/router.dart:184)
<asynchronous suspension>
#6      handleRequest (package:shelf/shelf_io.dart:140)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:05.901851]---------------------
[MediaKitError] 
Failed to open http://0.0.0.0:17256/stream/0RFgvrhkf9FiDRLA0BhzpZ.
#0      new CustomPlayer.<anonymous closure> (package:spotube/services/audio_player/custom_player.dart:47)
#1      _rootRunUnary (dart:async/zone.dart:1538)
#2      _CustomZone.runUnary (dart:async/zone.dart:1429)
#3      _CustomZone.runUnaryGuarded (dart:async/zone.dart:1329)
#4      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381)
#5      _DelayedData.perform (dart:async/stream_impl.dart:573)
#6      _PendingEvents.handleNext (dart:async/stream_impl.dart:678)
#7      _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:649)
#8      _rootRun (dart:async/zone.dart:1517)
#9      _CustomZone.run (dart:async/zone.dart:1422)
#10     _CustomZone.runGuarded (dart:async/zone.dart:1321)
#11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362)
#12     _rootRun (dart:async/zone.dart:1525)
#13     _CustomZone.run (dart:async/zone.dart:1422)
#14     _CustomZone.runGuarded (dart:async/zone.dart:1321)
#15     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362)
#16     _microtaskLoop (dart:async/schedule_microtask.dart:40)
#17     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)

----------------------------------------
[2026-03-01 23:53:26.174813]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ChunkDownloaderDioExtension.chunkDownload (package:spotube/extensions/dio.dart:62)
<asynchronous suspension>
#2      DownloadManagerNotifier._downloadTrack (package:spotube/provider/download_manager_provider.dart:217)
<asynchronous suspension>
#3      DownloadManagerNotifier._startDownloading (package:spotube/provider/download_manager_provider.dart:271)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:41.765527]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ChunkDownloaderDioExtension.chunkDownload (package:spotube/extensions/dio.dart:62)
<asynchronous suspension>
#2      DownloadManagerNotifier._downloadTrack (package:spotube/provider/download_manager_provider.dart:217)
<asynchronous suspension>
#3      DownloadManagerNotifier._startDownloading (package:spotube/provider/download_manager_provider.dart:271)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:42.626566]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ChunkDownloaderDioExtension.chunkDownload (package:spotube/extensions/dio.dart:62)
<asynchronous suspension>
#2      DownloadManagerNotifier._downloadTrack (package:spotube/provider/download_manager_provider.dart:217)
<asynchronous suspension>
#3      DownloadManagerNotifier._startDownloading (package:spotube/provider/download_manager_provider.dart:271)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:43.226420]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ChunkDownloaderDioExtension.chunkDownload (package:spotube/extensions/dio.dart:62)
<asynchronous suspension>
#2      DownloadManagerNotifier._downloadTrack (package:spotube/provider/download_manager_provider.dart:217)
<asynchronous suspension>
#3      DownloadManagerNotifier._startDownloading (package:spotube/provider/download_manager_provider.dart:271)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:43.807078]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ChunkDownloaderDioExtension.chunkDownload (package:spotube/extensions/dio.dart:62)
<asynchronous suspension>
#2      DownloadManagerNotifier._downloadTrack (package:spotube/provider/download_manager_provider.dart:217)
<asynchronous suspension>
#3      DownloadManagerNotifier._startDownloading (package:spotube/provider/download_manager_provider.dart:271)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:44.499566]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ChunkDownloaderDioExtension.chunkDownload (package:spotube/extensions/dio.dart:62)
<asynchronous suspension>
#2      DownloadManagerNotifier._downloadTrack (package:spotube/provider/download_manager_provider.dart:217)
<asynchronous suspension>
#3      DownloadManagerNotifier._startDownloading (package:spotube/provider/download_manager_provider.dart:271)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:45.329302]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ChunkDownloaderDioExtension.chunkDownload (package:spotube/extensions/dio.dart:62)
<asynchronous suspension>
#2      DownloadManagerNotifier._downloadTrack (package:spotube/provider/download_manager_provider.dart:217)
<asynchronous suspension>
#3      DownloadManagerNotifier._startDownloading (package:spotube/provider/download_manager_provider.dart:271)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:47.830357]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 429 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 429 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      HttpClient.request (package:hetu_std/http/http.dart:146)
<asynchronous suspension>
#2      HttpClient.get (package:hetu_std/http/http.dart:175)
<asynchronous suspension>
#3      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#4      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#5      MetadataPluginUserEndpoint.savedArtists (package:spotube/services/metadata/endpoints/user.dart:86)
<asynchronous suspension>
#6      MetadataPluginSavedArtistNotifier.fetch (package:spotube/provider/metadata_plugin/library/artists.dart:13)
<asynchronous suspension>
#7      MetadataPluginSavedArtistNotifier.build (package:spotube/provider/metadata_plugin/library/artists.dart:24)
<asynchronous suspension>
#8      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:53:49.330276]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 429 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 429 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      HttpClient.request (package:hetu_std/http/http.dart:146)
<asynchronous suspension>
#2      HttpClient.get (package:hetu_std/http/http.dart:175)
<asynchronous suspension>
#3      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#4      StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
<asynchronous suspension>
#5      MetadataPluginUserEndpoint.savedArtists (package:spotube/services/metadata/endpoints/user.dart:86)
<asynchronous suspension>
#6      MetadataPluginSavedArtistNotifier.fetch (package:spotube/provider/metadata_plugin/library/artists.dart:13)
<asynchronous suspension>
#7      MetadataPluginSavedArtistNotifier.build (package:spotube/provider/metadata_plugin/library/artists.dart:24)
<asynchronous suspension>
#8      FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:56:01.850519]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
<asynchronous suspension>
#2      ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
<asynchronous suspension>
#3      RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:109)
<asynchronous suspension>
#4      RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
<asynchronous suspension>
#5      Router.call (package:shelf_router/src/router.dart:184)
<asynchronous suspension>
#6      handleRequest (package:shelf/shelf_io.dart:140)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:56:05.889237]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
<asynchronous suspension>
#2      ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
<asynchronous suspension>
#3      RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:109)
<asynchronous suspension>
#4      RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
<asynchronous suspension>
#5      Router.call (package:shelf_router/src/router.dart:184)
<asynchronous suspension>
#6      handleRequest (package:shelf/shelf_io.dart:140)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:56:05.891569]---------------------
Failed to open http://0.0.0.0:22179/stream/0RFgvrhkf9FiDRLA0BhzpZ.
#0      new AudioPlayerInterface.<anonymous closure> (package:spotube/services/audio_player/audio_player.dart:56)
#1      _rootRunUnary (dart:async/zone.dart:1538)
#2      _CustomZone.runUnary (dart:async/zone.dart:1429)
#3      _CustomZone.runUnaryGuarded (dart:async/zone.dart:1329)
#4      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381)
#5      _DelayedData.perform (dart:async/stream_impl.dart:573)
#6      _PendingEvents.handleNext (dart:async/stream_impl.dart:678)
#7      _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:649)
#8      _rootRun (dart:async/zone.dart:1517)
#9      _CustomZone.run (dart:async/zone.dart:1422)
#10     _CustomZone.runGuarded (dart:async/zone.dart:1321)
#11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362)
#12     _rootRun (dart:async/zone.dart:1525)
#13     _CustomZone.run (dart:async/zone.dart:1422)
#14     _CustomZone.runGuarded (dart:async/zone.dart:1321)
#15     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362)
#16     _microtaskLoop (dart:async/schedule_microtask.dart:40)
#17     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)

----------------------------------------
---------
[2026-03-01 23:57:40.026811]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
<asynchronous suspension>
#2      ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
<asynchronous suspension>
#3      RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:109)
<asynchronous suspension>
#4      RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
<asynchronous suspension>
#5      Router.call (package:shelf_router/src/router.dart:184)
<asynchronous suspension>
#6      handleRequest (package:shelf/shelf_io.dart:140)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:57:44.700252]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
<asynchronous suspension>
#2      ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
<asynchronous suspension>
#3      RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:109)
<asynchronous suspension>
#4      RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
<asynchronous suspension>
#5      Router.call (package:shelf_router/src/router.dart:184)
<asynchronous suspension>
#6      handleRequest (package:shelf/shelf_io.dart:140)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:57:44.701658]---------------------
Failed to open http://0.0.0.0:22179/stream/4c9FIjxXYYEyD9iH02fvbu.
#0      new AudioPlayerInterface.<anonymous closure> (package:spotube/services/audio_player/audio_player.dart:56)
#1      _rootRunUnary (dart:async/zone.dart:1538)
#2      _CustomZone.runUnary (dart:async/zone.dart:1429)
#3      _CustomZone.runUnaryGuarded (dart:async/zone.dart:1329)
#4      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381)
#5      _DelayedData.perform (dart:async/stream_impl.dart:573)
#6      _PendingEvents.handleNext (dart:async/stream_impl.dart:678)
#7      _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:649)
#8      _rootRun (dart:async/zone.dart:1517)
#9      _CustomZone.run (dart:async/zone.dart:1422)
#10     _CustomZone.runGuarded (dart:async/zone.dart:1321)
#11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362)
#12     _rootRun (dart:async/zone.dart:1525)
#13     _CustomZone.run (dart:async/zone.dart:1422)
#14     _CustomZone.runGuarded (dart:async/zone.dart:1321)
#15     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362)
#16     _microtaskLoop (dart:async/schedule_microtask.dart:40)
#17     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)

----------------------------------------
---------
[2026-03-01 23:57:49.031971]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
<asynchronous suspension>
#2      ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
<asynchronous suspension>
#3      RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:109)
<asynchronous suspension>
#4      RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
<asynchronous suspension>
#5      Router.call (package:shelf_router/src/router.dart:184)
<asynchronous suspension>
#6      handleRequest (package:shelf/shelf_io.dart:140)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:57:53.409983]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
<asynchronous suspension>
#2      ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
<asynchronous suspension>
#3      RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:109)
<asynchronous suspension>
#4      RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
<asynchronous suspension>
#5      Router.call (package:shelf_router/src/router.dart:184)
<asynchronous suspension>
#6      handleRequest (package:shelf/shelf_io.dart:140)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:57:53.412136]---------------------
Failed to open http://0.0.0.0:22179/stream/5brviRvO3ZIDvdF0dED9wC.
#0      new AudioPlayerInterface.<anonymous closure> (package:spotube/services/audio_player/audio_player.dart:56)
#1      _rootRunUnary (dart:async/zone.dart:1538)
#2      _CustomZone.runUnary (dart:async/zone.dart:1429)
#3      _CustomZone.runUnaryGuarded (dart:async/zone.dart:1329)
#4      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381)
#5      _DelayedData.perform (dart:async/stream_impl.dart:573)
#6      _PendingEvents.handleNext (dart:async/stream_impl.dart:678)
#7      _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:649)
#8      _rootRun (dart:async/zone.dart:1517)
#9      _CustomZone.run (dart:async/zone.dart:1422)
#10     _CustomZone.runGuarded (dart:async/zone.dart:1321)
#11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362)
#12     _rootRun (dart:async/zone.dart:1525)
#13     _CustomZone.run (dart:async/zone.dart:1422)
#14     _CustomZone.runGuarded (dart:async/zone.dart:1321)
#15     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362)
#16     _microtaskLoop (dart:async/schedule_microtask.dart:40)
#17     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)

----------------------------------------
---------
[2026-03-01 23:57:57.630814]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
<asynchronous suspension>
#2      ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
<asynchronous suspension>
#3      RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:109)
<asynchronous suspension>
#4      RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
<asynchronous suspension>
#5      Router.call (package:shelf_router/src/router.dart:184)
<asynchronous suspension>
#6      handleRequest (package:shelf/shelf_io.dart:140)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:58:02.065757]---------------------
DioException [bad response]: This exception was thrown because the response has a status code of 403 and RequestOptions.validateStatus was configured to throw for this status code.
The status code of 403 has the following meaning: "Client error - the request contains bad syntax or cannot be fulfilled"
Read more about status codes at https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
In order to resolve this exception you typically have either to verify and fix your request code or you have to fix the server code.

#0      DioMixin.fetch (package:dio/src/dio_mixin.dart:523)
<asynchronous suspension>
#1      ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
<asynchronous suspension>
#2      ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
<asynchronous suspension>
#3      RouterEntry.invoke.<anonymous closure> (package:shelf_router/src/router_entry.dart:109)
<asynchronous suspension>
#4      RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
<asynchronous suspension>
#5      Router.call (package:shelf_router/src/router.dart:184)
<asynchronous suspension>
#6      handleRequest (package:shelf/shelf_io.dart:140)
<asynchronous suspension>

----------------------------------------
[2026-03-01 23:58:02.068101]---------------------
Failed to open http://0.0.0.0:22179/stream/0XNwlgh3Gjikmc2tyAasXF.
#0      new AudioPlayerInterface.<anonymous closure> (package:spotube/services/audio_player/audio_player.dart:56)
#1      _rootRunUnary (dart:async/zone.dart:1538)
#2      _CustomZone.runUnary (dart:async/zone.dart:1429)
#3      _CustomZone.runUnaryGuarded (dart:async/zone.dart:1329)
#4      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381)
#5      _DelayedData.perform (dart:async/stream_impl.dart:573)
#6      _PendingEvents.handleNext (dart:async/stream_impl.dart:678)
#7      _PendingEvents.schedule.<anonymous closure> (dart:async/stream_impl.dart:649)
#8      _rootRun (dart:async/zone.dart:1517)
#9      _CustomZone.run (dart:async/zone.dart:1422)
#10     _CustomZone.runGuarded (dart:async/zone.dart:1321)
#11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362)
#12     _rootRun (dart:async/zone.dart:1525)
#13     _CustomZone.run (dart:async/zone.dart:1422)
#14     _CustomZone.runGuarded (dart:async/zone.dart:1321)
#15     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:async/zone.dart:1362)
#16     _microtaskLoop (dart:async/schedule_microtask.dart:40)
#17     _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)

Operating System

Android

Spotube version

Androidv5.1.1

Installation source

Website (spotube.krtirtho.dev)

Additional information

Last update had issues where every page would give an error, only corrected by forcibly crashing the app and relaunching it, and albums would not load. Those seem to have been fixed, but now songs simply don't play. At least I could work around the errors by purposely crashing the app, and I could work around the album issue by using Spotify to add the albums songs to a playlist (which Spotube would load). But now, I can't work around this issue without taking up every bit of my storage by downloading all 69,540 hours of music.

Am I missing a required dependency for this update or something?

Self grab

  • I'm ready to work on this issue!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions