Fix race condition with enqueue_next_media on SyncGroup
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Sun, 22 Feb 2026 17:16:44 +0000 (18:16 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Sun, 22 Feb 2026 17:16:44 +0000 (18:16 +0100)
music_assistant/providers/sync_group/player.py

index 9a2be8d1d9181237f970a959d203e9d0d15f128e..0392c46ddea064bf11ad44e687d8c64b85e101ee 100644 (file)
@@ -210,6 +210,10 @@ class SyncGroupPlayer(Player):
     async def enqueue_next_media(self, media: PlayerMedia) -> None:
         """Handle enqueuing of a next media item on the player."""
         if sync_leader := self.sync_leader:
+            if PlayerFeature.ENQUEUE not in sync_leader.state.supported_features:
+                # this may happen in race conditions where we just switched sync leaders
+                # and the new leader doesn't support enqueueing next media.
+                return
             # Use internal handler to bypass group redirect logic and avoid infinite loop
             await self.mass.players._handle_enqueue_next_media(sync_leader.player_id, media)