Is there an existing issue for this? (Please read the description)
- [x] I have searched the existing issues
Current Behavior
Anytime I attempt to play a song while I'm on cellular data it tries loading the song for a couple seconds and then stops. If I try to load that same song again it doesn't even attempt to load it. This issue only happens on cellular data because every time I switch to Wi-Fi all of my songs load perfectly fine. I tried switching audio sources to fix this issue but nothing worked.
Expected Behavior
The app should play my songs when I'm using cellular data.
Steps to reproduce
- Open the app.
- Try to play a song.
- Feel sad when the song doesn't play.
Logs
Logs
<Replace this line by pasting your logs here>
Operating System
Android 15
Spotube version
v3.9.0
Installation source
GitHub Releases (Binary)
Additional information
No response
Self grab
- [ ] I'm ready to work on this issue!
Did you confirm it is not caused by your general connection?
Also coud you try sending logs after it failed to load.
If the source for playback is youtube it is possible that the ip adress your device is using got banned in that case try disconnecting and reconnecting from your mobile data connection.
Piped and jiosaavn in general don't work well.
I got the same issue now. After selecting YouTube as audio source no music played (except for a few songs). A quick look in the logs showed that the App tried to fetch the audio from Jiosaavn.
A fix for me was to use Invidious.
Here are my logs (up until 0:15h i was using YouTube as my audio source then i selected Invidious and restarted the App)
[2025-03-04 16:07:25.035522]---------------------
[TrackNotFoundError] Pieces - Sum 41
#0 JioSaavnSourcedTrack.fetchFromTrack (package:spotube/services/sourced_track/sources/jiosaavn.dart:60)
#1 SourcedTrack.fetchFromTrack (package:spotube/services/sourced_track/sourced_track.dart:200)
#2 SourcedTrackNotifier.build (package:spotube/provider/server/sourced_track.dart:27)
#3 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-04 16:10:07.902531]---------------------
[TrackNotFoundError] Pieces - Sum 41
#0 JioSaavnSourcedTrack.fetchFromTrack (package:spotube/services/sourced_track/sources/jiosaavn.dart:60)
#1 SourcedTrack.fetchFromTrack (package:spotube/services/sourced_track/sourced_track.dart:200)
#2 SourcedTrackNotifier.build (package:spotube/provider/server/sourced_track.dart:27)
#3 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-04 16:10:07.903942]---------------------
[MediaKitError]
Failed to open http://0.0.0.0:8257/stream/1ibeKVCiXORhvUpMmtsQWq.
#0 new CustomPlayer. (package:spotube/services/audio_player/custom_player.dart:51)
#1 _rootRunUnary (dart:async/zone.dart:1407)
#2 _CustomZone.runUnary (dart:async/zone.dart:1308)
#3 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217)
#4 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:365)
#5 _DelayedData.perform (dart:async/stream_impl.dart:541)
#6 _PendingEvents.handleNext (dart:async/stream_impl.dart:646)
#7 _PendingEvents.schedule. (dart:async/stream_impl.dart:617)
#8 _rootRun (dart:async/zone.dart:1391)
#9 _CustomZone.run (dart:async/zone.dart:1301)
#10 _CustomZone.runGuarded (dart:async/zone.dart:1209)
#11 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1249)
#12 _rootRun (dart:async/zone.dart:1399)
#13 _CustomZone.run (dart:async/zone.dart:1301)
#14 _CustomZone.runGuarded (dart:async/zone.dart:1209)
#15 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1249)
#16 _microtaskLoop (dart:async/schedule_microtask.dart:40)
#17 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)
[2025-03-04 16:10:07.904191]---------------------
Failed to open http://0.0.0.0:8257/stream/1ibeKVCiXORhvUpMmtsQWq.
#0 new AudioPlayerInterface. (package:spotube/services/audio_player/audio_player.dart:93)
#1 _rootRunUnary (dart:async/zone.dart:1407)
#2 _CustomZone.runUnary (dart:async/zone.dart:1308)
#3 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217)
#4 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:365)
#5 _DelayedData.perform (dart:async/stream_impl.dart:541)
#6 _PendingEvents.handleNext (dart:async/stream_impl.dart:646)
#7 _PendingEvents.schedule. (dart:async/stream_impl.dart:617)
#8 _rootRun (dart:async/zone.dart:1391)
#9 _CustomZone.run (dart:async/zone.dart:1301)
#10 _CustomZone.runGuarded (dart:async/zone.dart:1209)
#11 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1249)
#12 _rootRun (dart:async/zone.dart:1399)
#13 _CustomZone.run (dart:async/zone.dart:1301)
#14 _CustomZone.runGuarded (dart:async/zone.dart:1209)
#15 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1249)
#16 _microtaskLoop (dart:async/schedule_microtask.dart:40)
#17 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)
[2025-03-04 23:05:52.853800]---------------------
OAuth authorization error (invalid_token): The access token expired.
#0 Client.send (package:oauth2/src/client.dart:134)
#1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#2 SpotifyApiBase._getImpl. (package:spotify/src/spotify_base.dart:211)
#3 SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:247)
#4 SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
#5 Pages.getPage (package:spotify/src/endpoints/endpoint_paging.dart:253)
#6 SinglePages.stream.handlePageAndGetNext (package:spotify/src/endpoints/endpoint_paging.dart:187)
[2025-03-04 23:05:52.884166]---------------------
OAuth authorization error (invalid_token): The access token expired.
#0 Client.send (package:oauth2/src/client.dart:134)
#1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#2 SpotifyApiBase._getImpl. (package:spotify/src/spotify_base.dart:211)
#3 SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:247)
#4 SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
#5 Pages.getPage (package:spotify/src/endpoints/endpoint_paging.dart:253)
#6 AlbumReleasesNotifier.fetch (package:spotube/provider/spotify/album/releases.dart:35)
#7 AlbumReleasesNotifier.build (package:spotube/provider/spotify/album/releases.dart:50)
#8 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-04 23:05:52.893434]---------------------
OAuth authorization error (invalid_token): The access token expired.
#0 Client.send (package:oauth2/src/client.dart:134)
#1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#2 SpotifyApiBase._getImpl. (package:spotify/src/spotify_base.dart:211)
#3 SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:247)
#4 SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
#5 Me.get (package:spotify/src/endpoints/me.dart:22)
#6 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-04 23:05:52.918655]---------------------
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:520)
#1 CustomSpotifyEndpoints.getHomeFeed (package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart:131)
#2 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-04 23:05:52.953761]---------------------
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:520)
#1 CustomSpotifyEndpoints.getView (package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart:80)
#2 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-04 23:06:19.222066]---------------------
Error Code: 400
Invalid base62 id
#0 SpotifyApiBase.handleResponseWithBody (package:spotify/src/spotify_base.dart:282)
#1 SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:256)
#2 SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
#3 Me.checkFollowing (package:spotify/src/endpoints/me.dart:61)
#4 albumsIsSavedProvider.. (package:spotube/provider/spotify/album/is_saved.dart:7)
#5 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-04 23:06:19.808189]---------------------
ApiException 404: {"type":"https://mediawiki.org/wiki/HyperSwitch/errors/not_found","title":"Not found.","method":"get","detail":"Page or revision not found.","uri":"/en.wikipedia.org/v1/page/summary/Aperture_Science_Psychoacoustic_Laboratories"}
#0 PageContentApi.pageSummaryTitleGet (package:wikipedia_api/src/api/page_content_api.dart:1591)
#1 artistWikipediaSummaryProvider. (package:spotube/provider/spotify/artist/wikipedia.dart:6)
#2 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-05 00:15:05.832416]---------------------
OAuth authorization error (invalid_token): The access token expired.
#0 Client.send (package:oauth2/src/client.dart:134)
#1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#2 SpotifyApiBase._getImpl. (package:spotify/src/spotify_base.dart:211)
#3 SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:247)
#4 SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
#5 Pages.getPage (package:spotify/src/endpoints/endpoint_paging.dart:253)
#6 SinglePages.stream.handlePageAndGetNext (package:spotify/src/endpoints/endpoint_paging.dart:187)
[2025-03-05 00:15:05.835124]---------------------
OAuth authorization error (invalid_token): The access token expired.
#0 Client.send (package:oauth2/src/client.dart:134)
#1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#2 SpotifyApiBase._getImpl. (package:spotify/src/spotify_base.dart:211)
#3 SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:247)
#4 SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
#5 Pages.getPage (package:spotify/src/endpoints/endpoint_paging.dart:253)
#6 FeaturedPlaylistsNotifier.fetch (package:spotube/provider/spotify/playlist/featured.dart:33)
#7 FeaturedPlaylistsNotifier.build (package:spotube/provider/spotify/playlist/featured.dart:44)
#8 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-05 00:15:05.845261]---------------------
OAuth authorization error (invalid_token): The access token expired.
#0 Client.send (package:oauth2/src/client.dart:134)
#1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#2 SpotifyApiBase._getImpl. (package:spotify/src/spotify_base.dart:211)
#3 SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:247)
#4 SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
#5 Pages.getPage (package:spotify/src/endpoints/endpoint_paging.dart:253)
#6 AlbumReleasesNotifier.fetch (package:spotube/provider/spotify/album/releases.dart:35)
#7 AlbumReleasesNotifier.build (package:spotube/provider/spotify/album/releases.dart:50)
#8 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-05 00:15:05.851885]---------------------
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:520)
#1 CustomSpotifyEndpoints.getView (package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart:80)
#2 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-05 00:15:05.870999]---------------------
OAuth authorization error (invalid_token): The access token expired.
#0 Client.send (package:oauth2/src/client.dart:134)
#1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#2 SpotifyApiBase._getImpl. (package:spotify/src/spotify_base.dart:211)
#3 SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:247)
#4 SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
#5 CursorPages.getPage (package:spotify/src/endpoints/endpoint_paging.dart:292)
#6 SinglePages.stream.handlePageAndGetNext (package:spotify/src/endpoints/endpoint_paging.dart:187)
[2025-03-05 00:15:05.873966]---------------------
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:520)
#1 CustomSpotifyEndpoints.getHomeFeed (package:spotube/services/custom_spotify_endpoints/spotify_endpoints.dart:131)
#2 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-05 00:15:05.905713]---------------------
OAuth authorization error (invalid_token): The access token expired.
#0 Client.send (package:oauth2/src/client.dart:134)
#1 BaseClient._sendUnstreamed (package:http/src/base_client.dart:93)
#2 SpotifyApiBase._getImpl. (package:spotify/src/spotify_base.dart:211)
#3 SpotifyApiBase._requestWrapper (package:spotify/src/spotify_base.dart:247)
#4 SpotifyApiBase._getImpl (package:spotify/src/spotify_base.dart:210)
#5 Me.get (package:spotify/src/endpoints/me.dart:22)
#6 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-05 00:28:36.875127]---------------------
type 'Null' is not a subtype of type 'String' in type cast
#0 _$$InvidiousMonitorImplFromJson (package:invidious/src/models/model.g.dart:493)
#1 new _$InvidiousMonitorImpl.fromJson (package:invidious/src/models/model.freezed.dart:5728)
#2 _$InvidiousMonitorFromJson (package:invidious/src/models/model.freezed.dart:5309)
#3 new InvidiousMonitor.fromJson (package:invidious/src/models/responses/instance.dart:128)
#4 _$$InvidiousInstanceDetailsImplFromJson (package:invidious/src/models/model.g.dart:361)
#5 new _$InvidiousInstanceDetailsImpl.fromJson (package:invidious/src/models/model.freezed.dart:4092)
#6 _$InvidiousInstanceDetailsFromJson (package:invidious/src/models/model.freezed.dart:3858)
#7 new InvidiousInstanceDetails.fromJson (package:invidious/src/models/responses/instance.dart:28)
#8 _$$InvidiousInstanceResponseImplFromJson (package:invidious/src/models/model.g.dart:336)
#9 new _$InvidiousInstanceResponseImpl.fromJson (package:invidious/src/models/model.freezed.dart:3792)
#10 _$InvidiousInstanceResponseFromJson (package:invidious/src/models/model.freezed.dart:3668)
#11 new InvidiousInstanceResponse.fromJson (package:invidious/src/models/responses/instance.dart:11)
#12 InstancesEndpoint.instances. (package:invidious/src/endpoints/instances.dart:13)
#13 MappedIterable.elementAt (dart:_internal/iterable.dart:385)
#14 ListIterator.moveNext (dart:_internal/iterable.dart:354)
#15 new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189)
#16 new _GrowableList.of (dart:core-patch/growable_array.dart:150)
#17 new List.of (dart:core-patch/array_patch.dart:39)
#18 ListIterable.toList (dart:_internal/iterable.dart:224)
#19 InstancesEndpoint.instances (package:invidious/src/endpoints/instances.dart:17)
#20 invidiousInstancesProvider. (package:spotube/provider/audio_player/sources/invidious_instances_provider.dart:7)
#21 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-05 00:28:44.151827]---------------------
type 'Null' is not a subtype of type 'String' in type cast
#0 _$$InvidiousMonitorImplFromJson (package:invidious/src/models/model.g.dart:493)
#1 new _$InvidiousMonitorImpl.fromJson (package:invidious/src/models/model.freezed.dart:5728)
#2 _$InvidiousMonitorFromJson (package:invidious/src/models/model.freezed.dart:5309)
#3 new InvidiousMonitor.fromJson (package:invidious/src/models/responses/instance.dart:128)
#4 _$$InvidiousInstanceDetailsImplFromJson (package:invidious/src/models/model.g.dart:361)
#5 new _$InvidiousInstanceDetailsImpl.fromJson (package:invidious/src/models/model.freezed.dart:4092)
#6 _$InvidiousInstanceDetailsFromJson (package:invidious/src/models/model.freezed.dart:3858)
#7 new InvidiousInstanceDetails.fromJson (package:invidious/src/models/responses/instance.dart:28)
#8 _$$InvidiousInstanceResponseImplFromJson (package:invidious/src/models/model.g.dart:336)
#9 new _$InvidiousInstanceResponseImpl.fromJson (package:invidious/src/models/model.freezed.dart:3792)
#10 _$InvidiousInstanceResponseFromJson (package:invidious/src/models/model.freezed.dart:3668)
#11 new InvidiousInstanceResponse.fromJson (package:invidious/src/models/responses/instance.dart:11)
#12 InstancesEndpoint.instances. (package:invidious/src/endpoints/instances.dart:13)
#13 MappedIterable.elementAt (dart:_internal/iterable.dart:385)
#14 ListIterator.moveNext (dart:_internal/iterable.dart:354)
#15 new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189)
#16 new _GrowableList.of (dart:core-patch/growable_array.dart:150)
#17 new List.of (dart:core-patch/array_patch.dart:39)
#18 ListIterable.toList (dart:_internal/iterable.dart:224)
#19 InstancesEndpoint.instances (package:invidious/src/endpoints/instances.dart:17)
#20 invidiousInstancesProvider. (package:spotube/provider/audio_player/sources/invidious_instances_provider.dart:7)
#21 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2025-03-05 00:39:10.222864]---------------------
RangeError (length): Invalid value: Valid value range is empty: 1
#0 List.elementAt (dart:core-patch/growable_array.dart)
#1 AudioPlayerStreamListeners.subscribeToPosition. (package:spotube/provider/audio_player/audio_player_streams.dart:143)
#2 _rootRunUnary (dart:async/zone.dart:1407)
#3 _CustomZone.runUnary (dart:async/zone.dart:1308)
#4 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217)
#5 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:365)
#6 _BufferingStreamSubscription._add (dart:async/stream_impl.dart:297)
#7 _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:123)
#8 _DistinctStream._handleData (dart:async/stream_pipe.dart:455)
#9 _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:153)
#10 _rootRunUnary (dart:async/zone.dart:1407)
#11 _CustomZone.runUnary (dart:async/zone.dart:1308)
#12 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1217)
#13 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:365)
#14 _DelayedData.perform (dart:async/stream_impl.dart:541)
#15 _PendingEvents.handleNext (dart:async/stream_impl.dart:646)
#16 _PendingEvents.schedule. (dart:async/stream_impl.dart:617)
#17 _rootRun (dart:async/zone.dart:1391)
#18 _CustomZone.run (dart:async/zone.dart:1301)
#19 _CustomZone.runGuarded (dart:async/zone.dart:1209)
#20 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1249)
#21 _rootRun (dart:async/zone.dart:1399)
#22 _CustomZone.run (dart:async/zone.dart:1301)
#23 _CustomZone.runGuarded (dart:async/zone.dart:1209)
#24 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1249)
#25 _microtaskLoop (dart:async/schedule_microtask.dart:40)
#26 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)