-
-
Notifications
You must be signed in to change notification settings - Fork 2k
Description
Is there an existing issue for this? (Please read the description)
- I have searched the existing issues
Current Behavior
Expected Behavior
https://github.com/user-attachments/assets/1dd3d618-ad88-4b40-b622-9aa351d82ce4
Please check attached photo , when I view any artist or album, I am using latest version
Steps to reproduce
No response
Logs
[2026-02-27 17:26:36.681413]---------------------
MetadataPluginException: No default audio source plugin is set. Please set a default plugin in the settings.
#0 AudioSourceAvailableQualityPresetsNotifier._initialize.. (package:spotube/provider/metadata_plugin/audio_source/quality_presets.dart:65)
#1 AsyncValueX.whenData. (package:riverpod/src/common.dart:640)
#2 AsyncData.map (package:riverpod/src/common.dart:346)
#3 AsyncValueX.whenData (package:riverpod/src/common.dart:636)
#4 AudioSourceAvailableQualityPresetsNotifier._initialize. (package:spotube/provider/metadata_plugin/audio_source/quality_presets.dart:63)
#5 AsyncValueX.whenData. (package:riverpod/src/common.dart:640)
#6 AsyncData.map (package:riverpod/src/common.dart:346)
#7 AsyncValueX.whenData (package:riverpod/src/common.dart:636)
#8 AudioSourceAvailableQualityPresetsNotifier._initialize (package:spotube/provider/metadata_plugin/audio_source/quality_presets.dart:62)
#9 AudioSourceAvailableQualityPresetsNotifier.build (package:spotube/provider/metadata_plugin/audio_source/quality_presets.dart:39)
#10 NotifierProviderImpl.runNotifierBuild (package:riverpod/src/notifier/base.dart:166)
#11 NotifierProviderElement.create (package:riverpod/src/notifier/base.dart:212)
#12 ProviderElementBase.buildState (package:riverpod/src/framework/element.dart:426)
#13 ProviderElementBase._performBuild (package:riverpod/src/framework/element.dart:363)
#14 ProviderElementBase.flush (package:riverpod/src/framework/element.dart:324)
#15 ProviderScheduler._performRefresh (package:riverpod/src/framework/scheduler.dart:100)
#16 ProviderScheduler._task (package:riverpod/src/framework/scheduler.dart:88)
#17 ProviderScheduler.vsync..invoke (package:riverpod/src/framework/scheduler.dart:41)
#18 _UncontrolledProviderScopeElement.build (package:flutter_riverpod/src/framework.dart:396)
#19 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5723)
#20 Element.rebuild (package:flutter/src/widgets/framework.dart:5435)
#21 BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2695)
#22 BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2752)
#23 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3056)
#24 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1259)
#25 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:495)
#26 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1434)
#27 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1347)
#28 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:1200)
#29 _rootRun (dart:async/zone.dart:1525)
#30 _CustomZone.run (dart:async/zone.dart:1422)
#31 _CustomZone.runGuarded (dart:async/zone.dart:1321)
#32 _invoke (dart:ui/hooks.dart:332)
#33 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:444)
#34 _drawFrame (dart:ui/hooks.dart:302)
[2026-02-27 17:26:48.395527]---------------------
No metadata plugin available
#0 metadataPluginSupportTextProvider. (package:spotube/provider/metadata_plugin/core/support.dart:8)
#1 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2026-02-27 17:27:42.758666]---------------------
File: /home/runner/work/spotube-plugin-spotify/spotube-plugin-spotify/src/segments/auth.ht
Line: 36, Column: 38
Runtime error: undefined
Message: Undefined identifier [_Timer].
#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.. (package:hetu_std/stream/stream.binding.dart:84)
#4 _rootRunUnary (dart:async/zone.dart:1538)
#5 _CustomZone.runUnary (dart:async/zone.dart:1429)
#6 _CustomZone.runUnaryGuarded (dart:async/zone.dart:1329)
#7 _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:381)
#8 _DelayedData.perform (dart:async/stream_impl.dart:573)
#9 _PendingEvents.handleNext (dart:async/stream_impl.dart:678)
#10 _PendingEvents.schedule. (dart:async/stream_impl.dart:649)
#11 _rootRun (dart:async/zone.dart:1517)
#12 _CustomZone.run (dart:async/zone.dart:1422)
#13 _CustomZone.runGuarded (dart:async/zone.dart:1321)
#14 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1362)
#15 _rootRun (dart:async/zone.dart:1525)
#16 _CustomZone.run (dart:async/zone.dart:1422)
#17 _CustomZone.runGuarded (dart:async/zone.dart:1321)
#18 _CustomZone.bindCallbackGuarded. (dart:async/zone.dart:1362)
#19 _microtaskLoop (dart:async/schedule_microtask.dart:40)
#20 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)
[2026-02-27 17:27:43.011316]---------------------
Null check operator used on a null value
#0 Element.widget (package:flutter/src/widgets/framework.dart:3598)
#1 Element.findAncestorWidgetOfExactType (package:flutter/src/widgets/framework.dart:5031)
#2 StackRouterScope.of (package:auto_route/src/router/controller/controller_scope.dart:108)
#3 AutoRouter.of (package:auto_route/src/router/widgets/auto_router.dart:82)
#4 AutoRouterX.router (package:auto_route/src/router/auto_router_x.dart:8)
#5 AutoRouterX.maybePop (package:auto_route/src/router/auto_router_x.dart:32)
#6 MetadataPlugin.create. (package:spotube/services/metadata/metadata.dart:68)
#7 Webview.close (package:hetu_spotube_plugin/webview/webview.dart:76)
#8 WebviewBinding.htFetch. (package:hetu_spotube_plugin/webview/webview.binding.dart:90)
#9 HTFunction._call (package:hetu_script/value/function/function.dart:649)
#10 HTFunction.call (package:hetu_script/value/function/function.dart:279)
#11 HTInterpreter._call (package:hetu_script/interpreter/interpreter.dart:370)
#12 HTInterpreter._handleCallExpr (package:hetu_script/interpreter/interpreter.dart:2099)
#13 HTInterpreter._execute (package:hetu_script/interpreter/interpreter.dart:1518)
#14 HTInterpreter.execute (package:hetu_script/interpreter/interpreter.dart:1035)
#15 HTFunction._call (package:hetu_script/value/function/function.dart:546)
#16 HTFunction.call (package:hetu_script/value/function/function.dart:279)
#17 StreamBinding.hFetch.. (package:hetu_std/stream/stream.binding.dart:84)
#18 _rootRunUnary (dart:async/zone.dart:1538)
#19 _CustomZone.runUnary (dart:async/zone.dart:1429)
#20 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:948)
#21 Future._propagateToListeners (dart:async/future_impl.dart:977)
#22 Future._completeWithValue (dart:async/future_impl.dart:720)
[2026-02-27 17:28:17.267014]---------------------
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)
#1 ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
#2 ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
#3 RouterEntry.invoke. (package:shelf_router/src/router_entry.dart:109)
#4 RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
#5 Router.call (package:shelf_router/src/router.dart:184)
#6 handleRequest (package:shelf/shelf_io.dart:140)
[2026-02-27 17:28:26.114689]---------------------
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)
#1 ServerPlaybackRoutes.streamTrack (package:spotube/provider/server/routes/playback.dart:177)
#2 ServerPlaybackRoutes.getStreamTrackId (package:spotube/provider/server/routes/playback.dart:310)
#3 RouterEntry.invoke. (package:shelf_router/src/router_entry.dart:109)
#4 RouterEntry.invoke (package:shelf_router/src/router_entry.dart:104)
#5 Router.call (package:shelf_router/src/router.dart:184)
#6 handleRequest (package:shelf/shelf_io.dart:140)
[2026-02-27 17:28:26.116788]---------------------
Failed to open http://0.0.0.0:20657/stream/66tuuvPdvGc0MfN6Ptotyw.
#0 new AudioPlayerInterface. (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. (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. (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. (dart:async/zone.dart:1362)
#16 _microtaskLoop (dart:async/schedule_microtask.dart:40)
#17 _startMicrotaskLoop (dart:async/schedule_microtask.dart:49)
[2026-02-27 17:28:52.649988]---------------------
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)
#1 HttpClient.request (package:hetu_std/http/http.dart:146)
#2 HttpClient.get (package:hetu_std/http/http.dart:175)
#3 StreamBinding.hFetch.. (package:hetu_std/stream/stream.binding.dart:84)
#4 StreamBinding.hFetch.. (package:hetu_std/stream/stream.binding.dart:84)
#5 MetadataPluginArtistEndpoint.related (package:spotube/services/metadata/endpoints/artist.dart:85)
#6 MetadataPluginArtistRelatedArtistsNotifier.fetch (package:spotube/provider/metadata_plugin/artist/related.dart:13)
#7 MetadataPluginArtistRelatedArtistsNotifier.build (package:spotube/provider/metadata_plugin/artist/related.dart:23)
#8 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2026-02-27 17:28:54.740472]---------------------
ApiException 404: {"status":404,"type":"Internal error"}
#0 PageContentApi.pageSummaryTitleGet (package:wikipedia_api/src/api/page_content_api.dart:1591)
#1 artistWikipediaSummaryProvider. (package:spotube/provider/metadata_plugin/artist/wikipedia.dart:10)
#2 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2026-02-27 17:29:00.768990]---------------------
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)
#1 HttpClient.request (package:hetu_std/http/http.dart:146)
#2 HttpClient.get (package:hetu_std/http/http.dart:175)
#3 StreamBinding.hFetch.. (package:hetu_std/stream/stream.binding.dart:84)
#4 StreamBinding.hFetch.. (package:hetu_std/stream/stream.binding.dart:84)
#5 MetadataPluginArtistEndpoint.related (package:spotube/services/metadata/endpoints/artist.dart:85)
#6 MetadataPluginArtistRelatedArtistsNotifier.fetch (package:spotube/provider/metadata_plugin/artist/related.dart:13)
#7 MetadataPluginArtistRelatedArtistsNotifier.build (package:spotube/provider/metadata_plugin/artist/related.dart:23)
#8 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2026-02-27 17:29:01.430520]---------------------
ApiException 404: {"status":404,"type":"Internal error"}
#0 PageContentApi.pageSummaryTitleGet (package:wikipedia_api/src/api/page_content_api.dart:1591)
#1 artistWikipediaSummaryProvider. (package:spotube/provider/metadata_plugin/artist/wikipedia.dart:10)
#2 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2026-02-27 17:29:50.008690]---------------------
ApiException 404: {"status":404,"type":"Internal error"}
#0 PageContentApi.pageSummaryTitleGet (package:wikipedia_api/src/api/page_content_api.dart:1591)
#1 artistWikipediaSummaryProvider. (package:spotube/provider/metadata_plugin/artist/wikipedia.dart:10)
#2 FutureHandlerProviderElementMixin.handleFuture.. (package:riverpod/src/async_notifier/base.dart:355)
[2026-02-27 17:29:52.267376]---------------------
Null check operator used on a null value
#0 SpotubeImageExtensions.asUrlString. (package:spotube/models/metadata/image.dart:36)
#1 Sort._insertionSort (dart:_internal/sort.dart:77)
#2 Sort._doSort (dart:_internal/sort.dart:62)
#3 Sort.sort (dart:_internal/sort.dart:33)
#4 ListBase.sort (dart:collection/list.dart:321)
#5 IterableExtension.sorted (package:collection/src/iterable_extensions.dart:66)
#6 SpotubeImageExtensions.asUrlString (package:spotube/models/metadata/image.dart:36)
#7 SpotubeImageExtensions.asUri (package:spotube/models/metadata/image.dart:49)
#8 AudioServices.addTrack (package:spotube/services/audio_services/audio_services.dart:56)
[2026-02-27 17:29:52.279230]---------------------
Null check operator used on a null value
#0 SpotubeImageExtensions.asUrlString. (package:spotube/models/metadata/image.dart:36)
#1 Sort._insertionSort (dart:_internal/sort.dart:77)
#2 Sort._doSort (dart:_internal/sort.dart:62)
#3 Sort.sort (dart:_internal/sort.dart:33)
#4 ListBase.sort (dart:collection/list.dart:321)
#5 IterableExtension.sorted (package:collection/src/iterable_extensions.dart:66)
#6 SpotubeImageExtensions.asUrlString (package:spotube/models/metadata/image.dart:36)
#7 BottomPlayer.build. (package:spotube/modules/root/bottom_player.dart:39)
#8 _MemoizedHookState.value (package:flutter_hooks/src/primitives.dart:82)
#9 _MemoizedHookState.build (package:flutter_hooks/src/primitives.dart)
#10 HookElement._use (package:flutter_hooks/src/framework.dart:486)
#11 Hook.use (package:flutter_hooks/src/framework.dart:139)
#12 use (package:flutter_hooks/src/framework.dart:18)
#13 useMemoized (package:flutter_hooks/src/primitives.dart:61)
#14 BottomPlayer.build (package:spotube/modules/root/bottom_player.dart:37)
#15 _ConsumerState.build (package:flutter_riverpod/src/consumer.dart:476)
#16 StatefulElement.build (package:flutter/src/widgets/framework.dart:5833)
#17 ConsumerStatefulElement.build (package:flutter_riverpod/src/consumer.dart:539)
#18 HookElement.build (package:flutter_hooks/src/framework.dart:438)
#19 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5723)
#20 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5884)
#21 Element.rebuild (package:flutter/src/widgets/framework.dart:5435)
#22 BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2695)
#23 BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2752)
#24 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3056)
#25 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:1259)
#26 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding
<Replace this line by pasting your logs here>
Operating System
Android
Spotube version
5.1.1
Installation source
F-Droid (Android)
Additional information
No response
Self grab
- I'm ready to work on this issue!