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