Erros comuns de bot do Discord e como lê-los
Intents desativados (4014), limite de taxa (429), EAI_AGAIN, token inválido: o que cada erro significa e o que verificar primeiro.
A maioria das falhas de um bot do Discord se resume a quatro erros. Cada um tem uma causa precisa, e a ordem das verificações importa: o token e os intents se conferem em dois minutos, o limite de taxa pede revisão do laço de envio, e o EAI_AGAIN afeta a rede, não o seu código.
- Erro 4014: um intent privilegiado é pedido, mas não está ativado no portal.
- Erro 429: envios demais e rápido demais. Espere o tempo indicado pelo Discord.
- EAI_AGAIN: falha de resolução DNS do lado da rede, não no seu código.
- Token inválido: LoginFailure ou «invalid token», a corrigir na variável.
Intents desativados: erro 4014
O erro 4014 (Disallowed intents) significa que o bot pede um intent privilegiado, como a leitura do conteúdo das mensagens, sem tê-lo ativado no portal de desenvolvedores. O Discord então recusa a conexão.
- Abra o portal de desenvolvedores, seção Bot, e ative os intents privilegiados usados pelo código.
- Peça no código apenas os intents de que precisa: cada intent desnecessário é uma permissão a mais para ativar.
- Depois de uma alteração, reinicie o bot. Um reinício sem mudanças repete o mesmo erro.
Limite de taxa: erro 429
O código 429 (Too Many Requests) significa que o bot ultrapassou o ritmo permitido pelo Discord, muitas vezes porque envia ou edita mensagens em um laço. A resposta indica quanto tempo esperar.
- discord.js e discord.py esperam sozinhos na maioria das requisições, mas um laço de envios sem fim nunca para.
- Espace as ações repetidas: uma mensagem a cada poucos segundos é melhor que uma rajada.
- Respeite o tempo de espera indicado e não reinicie o bot em laço durante esse tempo.
Rede: EAI_AGAIN e ECONNRESET
EAI_AGAIN significa que o nome de domínio do Discord não pôde ser resolvido. ECONNRESET significa que a conexão foi cortada no meio do caminho. Esses erros vêm da rede entre o servidor e o Discord, não de uma linha do seu código.
- Se o erro aparece de forma intermitente, a maioria das bibliotecas tenta a conexão de novo com um intervalo crescente.
- Quedas de DNS ou de conexão são conhecidas e estão sendo corrigidas. Se o código estiver correto e o erro persistir, fale com o suporte informando a hora exata.
- Um erro isolado costuma ser passageiro: espere alguns minutos antes de mudar qualquer coisa.
Token inválido: LoginFailure
Um token inválido, expirado ou redefinido faz a conexão falhar já na inicialização. A mensagem costuma ser Improper token has been passed no Python, ou An invalid token was provided no Node.js.
- Confira se a variável contém o token, sem espaços ou aspas a mais.
- Se o token foi redefinido no portal, o valor anterior não funciona mais: copie o novo.
- Nunca cole o token em uma mensagem para que alguém o verifique.
Por que a ACLClouds para os seus bots
Erros de token e de intents se corrigem no código e no portal do Discord. O plano gratuito dá ao bot um espaço próprio, onde você pode corrigir o código e reimplantá-lo.
- Plano gratuito: 1 bot, 315 MB de RAM, 0,25 vCPU, 715 MB de armazenamento.
- Acesso SFTP por bot na porta 2222, para corrigir o código e reenviá-lo.
- ffmpeg, yt-dlp e deno incluídos nas imagens Node.js e Python.
Perguntas frequentes
Um bot pode ser bloqueado por um erro 429?
Um erro 429 é um limite temporário, não uma punição. Mas ignorar as esperas repetidamente pode levar a um bloqueio mais longo do lado do Discord. Corrija o laço.
Meu bot estava online ontem e hoje não está. Por quê?
Leia primeiro os logs: um erro de token, um intent desativado ou uma queda de rede deixam rastro. Confira também a data de fim do plano gratuito: 4 dias, renováveis pela página do bot nos 2 dias antes do vencimento, ou depois de suspenso.
Por que o EAI_AGAIN aparece só às vezes?
Uma resolução DNS que falha de forma intermitente costuma vir da rede. Tente de novo depois de uma pausa; se o erro persistir com código correto, fale com o suporte informando a hora exata.