From 3b812b3cccacc3ea3f8b8c1725ad8bf5ed40a886 Mon Sep 17 00:00:00 2001 From: Fabian Munkes <105975993+fmunkes@users.noreply.github.com> Date: Tue, 6 Jan 2026 12:55:00 +0100 Subject: [PATCH] fix: MusicCast: Handle a failed poll more gracefully (#2944) * be more generic in musiccast update * generic exception at all polling places --- music_assistant/providers/musiccast/player.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/music_assistant/providers/musiccast/player.py b/music_assistant/providers/musiccast/player.py index 76000e2f..27a9e22c 100644 --- a/music_assistant/providers/musiccast/player.py +++ b/music_assistant/providers/musiccast/player.py @@ -6,7 +6,7 @@ from collections.abc import Callable, Coroutine from dataclasses import dataclass from typing import TYPE_CHECKING, Any, cast -from aiohttp import ServerDisconnectedError +from aiohttp.client_exceptions import ClientError from aiomusiccast.exceptions import MusicCastGroupException from aiomusiccast.pyamaha import MusicCastConnectionException from music_assistant_models.config_entries import ConfigEntry, ConfigValueOption, ConfigValueType @@ -187,7 +187,11 @@ class MusicCastPlayer(Player): _xml_media_info = await avt_get_media_info( self.mass.http_session, self.physical_device ) - except ServerDisconnectedError: + except ClientError: + # this is regularly called, we can ignore a failing update + self.logger.debug("Acquiring media info failed, trying again in 5s.") + if self.upnp_update_helper is not None: + self.upnp_update_helper.last_poll = now return _player_current_url = search_xml(_xml_media_info, "CurrentURI") @@ -424,7 +428,7 @@ class MusicCastPlayer(Player): except (MusicCastConnectionException, MusicCastGroupException): await self._set_player_unavailable() return - except ServerDisconnectedError: + except ClientError: return await self.set_dynamic_attributes() -- 2.34.1