From f3ac69c5c4209374a7e7f0bd5dd6d5107a7db06f Mon Sep 17 00:00:00 2001 From: sdb9696 Date: Mon, 1 Jul 2024 14:27:31 +0100 Subject: [PATCH] Disable multi-request on unknown errors --- kasa/smartprotocol.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/kasa/smartprotocol.py b/kasa/smartprotocol.py index f7551e33b..e6741bc47 100644 --- a/kasa/smartprotocol.py +++ b/kasa/smartprotocol.py @@ -154,10 +154,14 @@ async def _execute_multiple_query(self, requests: dict, retry_count: int) -> dic try: self._handle_response_error_code(response_step, batch_name) except DeviceError as ex: - # P100 sometimes raises JSON_DECODE_FAIL_ERROR on batched request so - # disable batching + # P100 sometimes raises JSON_DECODE_FAIL_ERROR or INTERNAL_UNKNOWN_ERROR + # on batched request so disable batching if ( - ex.error_code is SmartErrorCode.JSON_DECODE_FAIL_ERROR + ex.error_code + in { + SmartErrorCode.JSON_DECODE_FAIL_ERROR, + SmartErrorCode.INTERNAL_UNKNOWN_ERROR, + } and self._multi_request_batch_size != 1 ): self._multi_request_batch_size = 1