diff --git a/homeassistant/components/sonos/diagnostics.py b/homeassistant/components/sonos/diagnostics.py index 707449e4002..421a0f7ed6a 100644 --- a/homeassistant/components/sonos/diagnostics.py +++ b/homeassistant/components/sonos/diagnostics.py @@ -91,9 +91,13 @@ async def async_generate_media_info( payload[attrib] = getattr(speaker.media, attrib) def poll_current_track_info(): - return speaker.soco.avTransport.GetPositionInfo( - [("InstanceID", 0), ("Channel", "Master")] - ) + try: + return speaker.soco.avTransport.GetPositionInfo( + [("InstanceID", 0), ("Channel", "Master")], + timeout=3, + ) + except OSError as ex: + return f"Error retrieving: {ex}" payload["current_track_poll"] = await hass.async_add_executor_job( poll_current_track_info