From df94e7729503e3146918abb2c177ffe5f704d276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20=C3=98rb=C3=A6k=20Chemnitz?= Date: Tue, 21 Nov 2023 09:14:53 +0100 Subject: [PATCH] Handle unknown authorization error with status 200 --- twscrape/queue_client.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/twscrape/queue_client.py b/twscrape/queue_client.py index e40356e..50415bd 100644 --- a/twscrape/queue_client.py +++ b/twscrape/queue_client.py @@ -38,11 +38,14 @@ class RateLimitError(Exception): class BannedError(Exception): pass - class DependencyError(Exception): pass +class UnknownAuthorizationError(Exception): + pass + + def req_id(rep: httpx.Response): lr = str(rep.headers.get("x-rate-limit-remaining", -1)) ll = str(rep.headers.get("x-rate-limit-limit", -1)) @@ -170,6 +173,9 @@ class QueueClient: if rep.status_code == 200 and "_Missing: No status found with that ID." in msg: return # ignore this error + if rep.status_code == 200 and "Authorization: Denied by access control: unspecified reason" in msg: + raise UnknownAuthorizationError(msg) + # todo: (32) Could not authenticate you if msg != "OK": @@ -197,7 +203,10 @@ class QueueClient: # already handled continue except DependencyError: - logger.error(f"Dependency error, returnning: {url}") + logger.error(f"Dependency error, returning: {url}") + return + except UnknownAuthorizationError: + logger.error(f"Unknown authorization error, returning: {url}") return except (httpx.ReadTimeout, httpx.ProxyError): # http transport failed, just retry