Fix for (group)player configs
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Sun, 7 Dec 2025 03:04:35 +0000 (04:04 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Sun, 7 Dec 2025 03:04:35 +0000 (04:04 +0100)
music_assistant/controllers/config.py

index 8df2239930a3abd231845bca952d6898f93f41cc..51298d5d2dc45d280ab124632c5e35f9684b2f95 100644 (file)
@@ -1311,25 +1311,21 @@ class ConfigController:
                 values[CONF_SMART_FADES_MODE] = "smart_crossfade"
                 changed = True
 
-        # migrate player configs: always use lookup key for provider
-        prov_configs = self._data.get(CONF_PROVIDERS, {})
+        # migrate player configs: always use instance_id for provider
         for player_config in self._data.get(CONF_PLAYERS, {}).values():
             if "provider" not in player_config:
                 continue
             player_provider = player_config["provider"]
-            if prov_conf := prov_configs.get(player_provider):
-                try:
-                    if not (prov_manifest := self.mass.get_provider_manifest(prov_conf["domain"])):
-                        continue
-                except KeyError:
-                    # removed provider
-                    continue
-                if prov_manifest.multi_instance:
-                    # multi instance providers use instance_id as lookup key
+            try:
+                if not (prov := self.mass.get_provider(player_provider)):
                     continue
-                # single instance providers use domain as lookup key
-                player_config["provider"] = prov_conf["domain"]
-                changed = True
+            except KeyError:
+                # removed provider
+                continue
+            if player_config["provider"] == prov.instance_id:
+                continue
+            player_config["provider"] = prov.instance_id
+            changed = True
 
         if changed:
             await self._async_save()