Skip to content

Commit f4fa68c

Browse files
committed
Added handling for flaky 403 errors.
1 parent 25f11da commit f4fa68c

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

custom_components/petsafe/__init__.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ def __init__(
237237
self._litterboxes: list[petsafe.devices.DeviceScoopfree] = None
238238
self._device_lock = asyncio.Lock()
239239
self.entry = entry
240+
self._authErrorCount = 0
240241

241242
async def get_feeders(self) -> list[petsafe.devices.DeviceSmartFeed]:
242243
"""Return the list of feeders."""
@@ -270,10 +271,15 @@ async def _async_update_data(self) -> PetSafeData:
270271
async with self._device_lock:
271272
self._feeders = await self.api.get_feeders()
272273
self._litterboxes = await self.api.get_litterboxes()
274+
self._authErrorCount = 0
273275
return PetSafeData(self._feeders, self._litterboxes)
274276
except httpx.HTTPStatusError as ex:
275277
if ex.response.status_code in (401, 403):
276-
raise ConfigEntryAuthFailed() from ex
278+
self._authErrorCount += 1
279+
if self._authErrorCount >= 5:
280+
self._authErrorCount = 0
281+
raise ConfigEntryAuthFailed() from ex
282+
277283
else:
278284
raise UpdateFailed() from ex
279285
except Exception as ex:

custom_components/petsafe/manifest.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"version": "1.3.4",
2+
"version": "1.3.5",
33
"domain": "petsafe",
44
"name": "PetSafe",
55
"config_flow": true,

0 commit comments

Comments
 (0)