From: Marcel van der Veldt Date: Wed, 25 Feb 2026 22:04:34 +0000 (+0100) Subject: Small tweak to sonos regarding the airplay grouping bug X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=1faddf9df545dd9b26fbdfe99cdb1806acdea6fa;p=music-assistant-server.git Small tweak to sonos regarding the airplay grouping bug --- diff --git a/music_assistant/providers/sonos/player.py b/music_assistant/providers/sonos/player.py index 87f36986..e9ca0272 100644 --- a/music_assistant/providers/sonos/player.py +++ b/music_assistant/providers/sonos/player.py @@ -492,6 +492,10 @@ class SonosPlayer(Player): active_group = group_parent.client.player.group self._attr_group_members.clear() + if not active_group: + # should not happen, but guard it anyways + return + # map playback state self._attr_playback_state = PLAYBACK_STATE_MAP[active_group.playback_state] self._attr_elapsed_time = active_group.position @@ -640,9 +644,9 @@ class SonosPlayer(Player): except Exception as err: self.logger.warning("Failed to restore AirPlay group: %s", err) - # Schedule restoration after 4 seconds to let AirPlay settle + # Schedule restoration after 6 seconds to let AirPlay settle self.mass.call_later( - 4, + 6, _restore_airplay_group, task_id=f"restore_airplay_group_{self.player_id}", ) @@ -720,6 +724,8 @@ class SonosPlayer(Player): return repeat_single_enabled = queue.repeat_mode == RepeatMode.ONE repeat_all_enabled = queue.repeat_mode == RepeatMode.ALL + if not self.client.player.group: + return play_modes = self.client.player.group.play_modes if ( play_modes.repeat != repeat_all_enabled