Fix `RuntimeError` in Chromecast player creation (#2382)
authorMaxim Raznatovski <nda.mr43@gmail.com>
Tue, 9 Sep 2025 09:23:57 +0000 (11:23 +0200)
committerGitHub <noreply@github.com>
Tue, 9 Sep 2025 09:23:57 +0000 (11:23 +0200)
music_assistant/providers/chromecast/provider.py

index 1d7874d60ccb3405bc922985353ba956d6e9a660..5ce218693b2a607321d3ad6362540735bf58cebd 100644 (file)
@@ -133,13 +133,18 @@ class ChromecastProvider(PlayerProvider):
                 self.mass.aiozc.zeroconf,
             )
             # create and register the new ChromeCastPlayer
-            castplayer = ChromecastPlayer(
-                self, player_id, cast_info=cast_info, chromecast=chromecast
-            )
             asyncio.run_coroutine_threadsafe(
-                self.mass.players.register_or_update(castplayer), loop=self.mass.loop
+                self._create_and_register_player(player_id, cast_info, chromecast),
+                loop=self.mass.loop,
             )
 
+    async def _create_and_register_player(
+        self, player_id: str, cast_info: ChromecastInfo, chromecast: pychromecast.Chromecast
+    ) -> None:
+        """Create and register a new ChromecastPlayer."""
+        castplayer = ChromecastPlayer(self, player_id, cast_info=cast_info, chromecast=chromecast)
+        await self.mass.players.register_or_update(castplayer)
+
     def _on_chromecast_removed(self, uuid: str, service: object, cast_info: object) -> None:
         """Handle zeroconf discovery of a removed Chromecast."""
         player_id = str(service[1])