Is there an existing issue for this? (Please read the description)
Current Behavior
When I go to an artist's page, the section titled "fans also like" has a Dio exception status code of 429.
Expected Behavior
The app should show other artists that fans listen to
Steps to reproduce
- Open app
- Go to an artist's page
- scroll down to "fans also like"
- See exception
Logs
Logs
tp.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-04-10 12:22:00.023041]---------------------
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.savedAlbums (package:spotube/services/metadata/endpoints/user.dart:66)
<asynchronous suspension>
#6 MetadataPluginSavedAlbumNotifier.fetch (package:spotube/provider/metadata_plugin/library/albums.dart:13)
<asynchronous suspension>
#7 MetadataPluginSavedAlbumNotifier.build (package:spotube/provider/metadata_plugin/library/albums.dart:22)
<asynchronous suspension>
#8 FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>
----------------------------------------
[2026-04-10 13:14:21.574468]---------------------
File: /home/runner/work/spotube-plugin-spotify/spotube-plugin-spotify/src/segments/track.ht
Line: 33, Column: 50
Runtime error: nullObject
Message: Calling method [$sub_setter_] on null object [item].
#0 HTInterpreter.processError (package:hetu_script/interpreter/interpreter.dart:303)
#1 HTFunction._call (package:hetu_script/value/function/function.dart:750)
#2 HTFunction.call (package:hetu_script/value/function/function.dart:279)
#3 StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
#4 _rootRunUnary (dart:async/zone.dart:1538)
#5 _CustomZone.runUnary (dart:async/zone.dart:1429)
<asynchronous suspension>
#6 MetadataPluginTrackEndpoint.radio (package:spotube/services/metadata/endpoints/track.dart:31)
<asynchronous suspension>
#7 useEndlessPlayback.<anonymous closure>.listener (package:spotube/hooks/configurators/use_endless_playback.dart:27)
<asynchronous suspension>
----------------------------------------
[2026-04-14 16:32:05.943281]---------------------
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 MetadataPluginTrackEndpoint.radio (package:spotube/services/metadata/endpoints/track.dart:31)
<asynchronous suspension>
#6 useEndlessPlayback.<anonymous closure>.listener (package:spotube/hooks/configurators/use_endless_playback.dart:27)
<asynchronous suspension>
----------------------------------------
[2026-04-14 16:32:05.956618]---------------------
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 MetadataPluginTrackEndpoint.radio (package:spotube/services/metadata/endpoints/track.dart:31)
<asynchronous suspension>
#6 useEndlessPlayback.<anonymous closure>.listener (package:spotube/hooks/configurators/use_endless_playback.dart:27)
<asynchronous suspension>
----------------------------------------
[2026-04-14 16:32:06.027197]---------------------
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-04-14 16:32:06.068323]---------------------
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-04-14 16:32:33.770627]---------------------
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 MetadataPluginArtistEndpoint.related (package:spotube/services/metadata/endpoints/artist.dart:85)
<asynchronous suspension>
#6 MetadataPluginArtistRelatedArtistsNotifier.fetch (package:spotube/provider/metadata_plugin/artist/related.dart:13)
<asynchronous suspension>
#7 MetadataPluginArtistRelatedArtistsNotifier.build (package:spotube/provider/metadata_plugin/artist/related.dart:23)
<asynchronous suspension>
#8 FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>
----------------------------------------
[2026-04-14 16:32:34.121891]---------------------
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-04-14 16:32:34.222638]---------------------
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-04-14 16:32:55.669265]---------------------
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-04-14 16:32:55.872662]---------------------
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 MetadataPluginArtistEndpoint.related (package:spotube/services/metadata/endpoints/artist.dart:85)
<asynchronous suspension>
#6 MetadataPluginArtistRelatedArtistsNotifier.fetch (package:spotube/provider/metadata_plugin/artist/related.dart:13)
<asynchronous suspension>
#7 MetadataPluginArtistRelatedArtistsNotifier.build (package:spotube/provider/metadata_plugin/artist/related.dart:23)
<asynchronous suspension>
#8 FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>
----------------------------------------
[2026-04-14 16:32:56.566540]---------------------
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-04-14 16:36:52.351069]---------------------
File: /home/runner/work/spotube-plugin-spotify/spotube-plugin-spotify/src/segments/track.ht
Line: 33, Column: 50
Runtime error: nullObject
Message: Calling method [$sub_setter_] on null object [item].
#0 HTInterpreter.processError (package:hetu_script/interpreter/interpreter.dart:303)
#1 HTFunction._call (package:hetu_script/value/function/function.dart:750)
#2 HTFunction.call (package:hetu_script/value/function/function.dart:279)
#3 StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
#4 _rootRunUnary (dart:async/zone.dart:1538)
#5 _CustomZone.runUnary (dart:async/zone.dart:1429)
<asynchronous suspension>
#6 MetadataPluginTrackEndpoint.radio (package:spotube/services/metadata/endpoints/track.dart:31)
<asynchronous suspension>
#7 useEndlessPlayback.<anonymous closure>.listener (package:spotube/hooks/configurators/use_endless_playback.dart:27)
<asynchronous suspension>
----------------------------------------
[2026-04-14 16:36:53.543348]---------------------
File: /home/runner/work/spotube-plugin-spotify/spotube-plugin-spotify/src/converter/converter.ht
Line: 2, Column: 79
Runtime error: extern
Message: NoSuchMethodError: The method '+' was called on null.
Receiver: null
Tried calling: +(20)
#0 HTInterpreter.processError (package:hetu_script/interpreter/interpreter.dart:303)
#1 HTFunction._call (package:hetu_script/value/function/function.dart:750)
#2 HTFunction.call (package:hetu_script/value/function/function.dart:279)
#3 StreamBinding.hFetch.<anonymous closure>.<anonymous closure> (package:hetu_std/stream/stream.binding.dart:84)
#4 _rootRunUnary (dart:async/zone.dart:1538)
#5 _CustomZone.runUnary (dart:async/zone.dart:1429)
<asynchronous suspension>
#6 MetadataPluginSearchEndpoint.artists (package:spotube/services/metadata/endpoints/search.dart:80)
<asynchronous suspension>
#7 MetadataPluginSearchArtistsNotifier.fetch (package:spotube/provider/metadata_plugin/search/artists.dart:24)
<asynchronous suspension>
#8 MetadataPluginSearchArtistsNotifier.build (package:spotube/provider/metadata_plugin/search/artists.dart:38)
<asynchronous suspension>
#9 FutureHandlerProviderElementMixin.handleFuture.<anonymous closure>.<anonymous closure> (package:riverpod/src/async_notifier/base.dart:355)
<asynchronous suspension>
----------------------------------------
[2026-04-14 16:37:05.038910]---------------------
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>
----------------------------------------
Operating System
Android 16
Spotube version
v5.1.1
Installation source
GitHub Releases (Binary)
Additional information
Note: there seem to be some other Dio exceptions in my logs as well. Please read my logs carefully as I do not understand them.
Self grab
Is there an existing issue for this? (Please read the description)
Current Behavior
When I go to an artist's page, the section titled "fans also like" has a Dio exception status code of 429.
Expected Behavior
The app should show other artists that fans listen to
Steps to reproduce
Logs
Logs
Operating System
Android 16
Spotube version
v5.1.1
Installation source
GitHub Releases (Binary)
Additional information
Note: there seem to be some other Dio exceptions in my logs as well. Please read my logs carefully as I do not understand them.
Self grab