From 217a3acac4aafa303b28c179f1e4edf964f2cf76 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Wed, 9 Sep 2020 21:17:28 -0400 Subject: [PATCH] Handle cloudflare bans on webhook requests Fixes #5221 --- discord/webhook.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/discord/webhook.py b/discord/webhook.py index 95590d168..727c5678e 100644 --- a/discord/webhook.py +++ b/discord/webhook.py @@ -215,6 +215,10 @@ class AsyncWebhookAdapter(WebhookAdapter): # we are being rate limited if r.status == 429: + if not r.headers.get('Via'): + # Banned by Cloudflare more than likely. + raise HTTPException(r, data) + retry_after = response['retry_after'] / 1000.0 await asyncio.sleep(retry_after) continue @@ -305,6 +309,10 @@ class RequestsWebhookAdapter(WebhookAdapter): # we are being rate limited if r.status == 429: if self.sleep: + if not r.headers.get('Via'): + # Banned by Cloudflare more than likely. + raise HTTPException(r, data) + retry_after = response['retry_after'] / 1000.0 time.sleep(retry_after) continue