Handle "error" key of response being a string in HTTPException
authorHarmon <Harmon758@gmail.com>
Thu, 21 Apr 2022 23:22:28 +0000 (18:22 -0500)
committerHarmon <Harmon758@gmail.com>
Thu, 21 Apr 2022 23:22:28 +0000 (18:22 -0500)
tweepy/errors.py

index 309c6be865b966db068f11cd89d44726c9862868..cea3efe799194da8b83124f5f823ee4a9d1c79d7 100644 (file)
@@ -45,16 +45,26 @@ class HTTPException(TweepyException):
             super().__init__(f"{response.status_code} {response.reason}")
         else:
             errors = response_json.get("errors", [])
+
             # Use := when support for Python 3.7 is dropped
             if "error" in response_json:
                 errors.append(response_json["error"])
+
             error_text = ""
+
             for error in errors:
                 self.api_errors.append(error)
+
+                if isinstance(error, str):
+                    self.api_messages.append(error)
+                    error_text += '\n' + error
+                    continue
+
                 if "code" in error:
                     self.api_codes.append(error["code"])
                 if "message" in error:
                     self.api_messages.append(error["message"])
+
                 if "code" in error and "message" in error:
                     error_text += f"\n{error['code']} - {error['message']}"
                 elif "message" in error: