From c5bf1ccc4e6a4a90ea21a4638795931f980b5ede Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sun, 5 Jan 2025 13:33:32 -1000 Subject: [PATCH] Improve timeout error reporting --- kasa/transports/xortransport.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/kasa/transports/xortransport.py b/kasa/transports/xortransport.py index 77a232f0..6d04240e 100644 --- a/kasa/transports/xortransport.py +++ b/kasa/transports/xortransport.py @@ -126,6 +126,12 @@ class XorTransport(BaseTransport): # This is especially import when there are multiple tplink devices being polled. try: await self._connect(self._timeout) + except TimeoutError as ex: + await self.reset() + raise _RetryableError( + f"Timeout after {self._timeout} seconds connecting to the device:" + f" {self._host}:{self._port}: {ex}" + ) from ex except ConnectionRefusedError as ex: await self.reset() raise KasaException( @@ -159,6 +165,12 @@ class XorTransport(BaseTransport): assert self.writer is not None # noqa: S101 async with asyncio_timeout(self._timeout): return await self._execute_send(request) + except TimeoutError as ex: + await self.reset() + raise _RetryableError( + f"Timeout after {self._timeout} seconds sending request to the device" + f" {self._host}:{self._port}: {ex}" + ) from ex except Exception as ex: await self.reset() raise _RetryableError(