Erreurs fréquentes d’un bot Discord et leurs causes
Intents désactivés (4014), limite de débit (429), EAI_AGAIN, token invalide : ce que signifie chaque erreur et quoi vérifier en premier.
La plupart des pannes d’un bot Discord se ramènent à quatre erreurs. Chacune a une cause précise, et l’ordre de vérification compte : le token et les intents se contrôlent en deux minutes, la limite de débit demande de revoir la boucle d’envoi, et EAI_AGAIN touche le réseau plutôt que votre code.
- Erreur 4014 : un intent privilégié est demandé, mais non activé dans le portail.
- Erreur 429 : trop d’envois trop vite. Attendez le délai indiqué par Discord.
- EAI_AGAIN : résolution DNS en échec côté réseau, pas dans votre code.
- Token invalide : LoginFailure ou « invalid token », à corriger dans la variable.
Intents désactivés : erreur 4014
L’erreur 4014 (Disallowed intents) signifie que le bot demande un intent privilégié, comme la lecture du contenu des messages, sans l’avoir activé dans le portail développeur. Discord refuse alors la connexion.
- Ouvrez le portail développeur, section Bot, et activez les intents privilégiés utilisés par votre code.
- Ne demandez dans le code que les intents dont vous avez besoin : chaque intent superflu reste une autorisation à activer.
- Après une modification, relancez le bot. Un redémarrage sans changement reproduit la même erreur.
Limite de débit : erreur 429
Le code 429 (Too Many Requests) signifie que le bot a dépassé la cadence autorisée par Discord, souvent parce qu’il envoie ou modifie des messages dans une boucle. La réponse indique alors combien de temps attendre.
- Les bibliothèques discord.js et discord.py attendent seules pour la plupart des requêtes, mais une boucle d’envois sans fin ne s’arrête pas.
- Espacez les actions répétées : un message toutes les quelques secondes vaut mieux qu’une rafale.
- Respectez la durée d’attente indiquée, et ne relancez pas le bot en boucle pendant ce temps.
Réseau : EAI_AGAIN et ECONNRESET
EAI_AGAIN signifie que le nom de domaine de Discord n’a pas pu être résolu. ECONNRESET signifie que la connexion a été coupée en cours de route. Ces erreurs viennent du réseau entre le serveur et Discord, pas d’une ligne de votre code.
- Si l’erreur apparaît par intermittence, la plupart des bibliothèques réessaient la connexion avec un délai croissant.
- Des coupures DNS ou de connexion sont connues et en cours de correction. Si votre code est juste et que l’erreur persiste, contactez le support avec l’heure exacte.
- Une erreur isolée est souvent passagère : attendez quelques minutes avant de modifier quoi que ce soit.
Token invalide : LoginFailure
Un token invalide, expiré ou réinitialisé fait échouer la connexion dès le démarrage. Le message est souvent Improper token has been passed en Python, ou An invalid token was provided en Node.js.
- Vérifiez que la variable contient le token, sans espace ni guillemets en trop.
- Si le token a été réinitialisé dans le portail, l’ancienne valeur ne fonctionne plus : copiez la nouvelle.
- Ne collez jamais le token dans un message pour le faire vérifier.
Pourquoi ACLClouds pour vos bots
Les erreurs de token et d’intents se corrigent dans le code et dans le portail Discord. L’offre gratuite donne à votre bot un espace dédié, où vous pouvez corriger le code et le redéployer.
- Offre gratuite : 1 bot, 315 Mo de RAM, 0,25 vCPU, 715 Mo de stockage.
- Accès SFTP par bot sur le port 2222, pour corriger le code et le redéployer.
- ffmpeg, yt-dlp et deno inclus dans les images Node.js et Python.
Questions fréquentes
Un bot peut-il être bloqué pour une erreur 429 ?
Une erreur 429 est une limite temporaire, pas une sanction. Mais ignorer les attentes de façon répétée peut entraîner un blocage plus long côté Discord. Corrigez la boucle.
Mon bot était en ligne hier et ne l’est plus aujourd’hui. Pourquoi ?
Lisez d’abord les logs : une erreur de token, un intent désactivé ou une coupure réseau laissent une trace. Vérifiez aussi l’échéance de l’offre gratuite : 4 jours, renouvelable depuis la page du bot dans les 2 jours qui précèdent l’échéance, ou une fois suspendu.
Pourquoi EAI_AGAIN n’apparaît-il que par moments ?
Une résolution DNS qui échoue de façon intermittente vient souvent du réseau. Relancez après un délai, et si l’erreur persiste avec un code correct, contactez le support avec l’heure exacte de l’erreur.