From 1faddf9df545dd9b26fbdfe99cdb1806acdea6fa Mon Sep 17 00:00:00 2001 From: Marcel van der Veldt Date: Wed, 25 Feb 2026 23:04:34 +0100 Subject: [PATCH] Small tweak to sonos regarding the airplay grouping bug --- music_assistant/providers/sonos/player.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) 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 -- 2.34.1