Limitation de débit Discord : pourquoi les bots sont ralentis
La limitation de débit est le plafond imposé par Discord au nombre de requêtes qu'un bot ou un utilisateur peut envoyer en peu de temps. Lorsqu'un bot le dépasse, Discord répond par une erreur HTTP 429 et un temps d'attente, et le bot doit faire une pause avant de réessayer.
Comment les limites sont appliquées
Chaque action d'un bot est une requête à l'API de Discord : envoyer un message, ajouter un rôle, modifier un salon. Discord compte les requêtes par groupes, généralement par route et parfois par serveur ou par salon. Il existe aussi un plafond global d'environ 50 requêtes par seconde pour un bot.
Les réponses incluent des en-têtes qui indiquent combien de requêtes restent et quand le compteur se réinitialise. Un bot bien écrit les lit et ralentit avant d'être bloqué. S'il dépasse malgré tout la limite, la réponse 429 contient une valeur Retry-After qui indique le nombre de secondes à attendre.
Pourquoi vous les remarquez
- Les actions de masse, comme supprimer de nombreux messages ou modifier de nombreux rôles, sont volontairement ralenties.
- Modifier plusieurs fois le nom ou le sujet d'un salon en peu de temps est limité par salon.
- Ajouter de nombreuses réactions ou envoyer des rafales de messages déclenche de courtes pauses.
Pour un membre, cela ressemble à un bot qui répond avec retard, et non à une erreur. C'est le système qui fait son travail.
La version grave : les bannissements temporaires
Si une application envoie trop de mauvaises requêtes, par exemple des milliers de réponses 401, 403 ou 429 en dix minutes, Discord peut bloquer son adresse IP pendant un moment au niveau de Cloudflare. Un bot hébergé sur une machine partagée peut alors tomber en panne alors que votre serveur n'a rien. Attendre est la seule solution.
N'essayez jamais de contourner les limitations avec des comptes supplémentaires ou des scripts. Elles protègent la plateforme, et les contourner risque un bannissement.
Ce que vous pouvez faire en tant que propriétaire
- Répartissez les gros travaux au lieu de tout lancer d'un coup.
- Évitez de renommer les salons selon un minuteur.
- Privilégiez les bots qui mettent leurs requêtes en file d'attente et respectent les limites.
Limitations de débit et Noxyr
Les journaux de serveur de Noxyr sont publiés au plus toutes les quelques secondes par salon et par lots de dix, donc un raid ou un gros nettoyage ne submerge jamais le salon de journal, comme décrit dans la documentation des journaux de serveur. L'envoi du chat en direct de Noxyr est aussi limité pour éviter les inondations. Les bots personnalisés ont une règle apparentée : chaque déplacement vers un nouvel hôte est une nouvelle connexion à Discord, il y a donc une attente de cinq minutes entre deux déplacements, voir hébergement des bots personnalisés.
Les limitations poussent aussi les gros bots à se répartir sur plusieurs connexions, voir le sharding. Si votre bot semble bloqué, consultez d'abord la page statut et latence.
Questions fréquentes
Que signifie HTTP 429 sur Discord ?
Trop de requêtes. Discord demande au bot d'attendre le temps indiqué dans la valeur Retry-After avant de réessayer.
Une limitation de débit est-elle un bannissement ?
Non. C'est une courte pause. Seul un abus répété peut mener à un blocage temporaire plus long.
Pourquoi mon bot répond-il lentement pendant un gros nettoyage ?
Discord limite le débit des actions de masse, donc un bot doit les répartir dans le temps.