From a8b7a32578aba050dc1ac458d43315afcd37be06 Mon Sep 17 00:00:00 2001 From: jjlawren Date: Thu, 2 Feb 2023 22:42:36 -0600 Subject: [PATCH] Handle failed Sonos subscriptions better (#87240) Catch unsubscribe failure separately from ZGS poll --- homeassistant/components/sonos/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/homeassistant/components/sonos/__init__.py b/homeassistant/components/sonos/__init__.py index f8047ba371f..1133b5b4d9d 100644 --- a/homeassistant/components/sonos/__init__.py +++ b/homeassistant/components/sonos/__init__.py @@ -11,6 +11,7 @@ import socket from typing import TYPE_CHECKING, Any, cast from urllib.parse import urlparse +from aiohttp import ClientError from requests.exceptions import Timeout from soco import events_asyncio, zonegroupstate import soco.config as soco_config @@ -229,6 +230,10 @@ class SonosDiscoveryManager: ) try: await sub.unsubscribe() + except (ClientError, OSError, Timeout) as ex: + _LOGGER.debug("Unsubscription from %s failed: %s", ip_address, ex) + + try: await self.hass.async_add_executor_job(soco.zone_group_state.poll, soco) except (OSError, SoCoException, Timeout) as ex: _LOGGER.warning(