From: Dionysis Fortis Date: Wed, 28 Jan 2026 08:11:39 +0000 (+0200) Subject: Fix IndexError when Deezer track has no media available (#3038) X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=1feb9fec8b057a82e19263e40c36cfd08c620d24;p=music-assistant-server.git Fix IndexError when Deezer track has no media available (#3038) Raise MediaNotFoundError instead of crashing with IndexError when the Deezer API returns an empty media list. This allows the player queue to gracefully skip unavailable tracks instead of stopping playback. Fixes music-assistant/support#4860 --- diff --git a/music_assistant/providers/deezer/gw_client.py b/music_assistant/providers/deezer/gw_client.py index 70eb267a..f4f109d0 100644 --- a/music_assistant/providers/deezer/gw_client.py +++ b/music_assistant/providers/deezer/gw_client.py @@ -10,6 +10,7 @@ from http.cookies import BaseCookie, Morsel from typing import Any, cast from aiohttp import ClientSession, ClientTimeout +from music_assistant_models.errors import MediaNotFoundError from music_assistant_models.streamdetails import StreamDetails from yarl import URL @@ -166,7 +167,11 @@ class GWClient: msg = "Received an error from API" raise DeezerGWError(msg, error) - return result_json["data"][0]["media"][0], song_data + media_list = result_json["data"][0].get("media", []) + if not media_list: + raise MediaNotFoundError(f"No media available for track {track_id}") + + return media_list[0], song_data async def log_listen( self, next_track: str | None = None, last_track: StreamDetails | None = None