Limite de taxa do Discord: por que bots são desacelerados
Um limite de taxa é o teto que o Discord impõe ao número de requisições que um bot ou usuário pode enviar em pouco tempo. Quando um bot passa desse limite, o Discord responde com um erro HTTP 429 e um tempo de espera, e o bot precisa pausar antes de tentar de novo.
Como os limites são aplicados
Toda ação de um bot é uma requisição à API do Discord: enviar uma mensagem, adicionar um cargo, editar um canal. O Discord conta as requisições em grupos, geralmente por rota e às vezes por servidor ou canal. Também existe um teto global de cerca de 50 requisições por segundo para um bot.
As respostas incluem cabeçalhos que informam quantas requisições restam e quando o grupo é reiniciado. Um bot bem escrito lê esses dados e desacelera antes de ser bloqueado. Se ainda assim ultrapassar o limite, a resposta 429 traz um valor Retry-After que diz quantos segundos esperar.
Por que você percebe
- Ações em massa, como apagar muitas mensagens ou alterar muitos cargos, são desaceleradas de propósito.
- Mudar o nome ou o tópico de um canal várias vezes em pouco tempo é limitado por canal.
- Adicionar muitas reações ou enviar rajadas de mensagens dispara pausas curtas.
Para um membro, isso parece um bot que responde com atraso, não um erro. É o sistema fazendo o seu trabalho.
A versão séria: banimentos temporários
Se um app faz requisições ruins demais, por exemplo milhares de respostas 401, 403 ou 429 em dez minutos, o Discord pode bloquear o endereço IP dele por um tempo na camada da Cloudflare. Um bot hospedado em uma máquina compartilhada pode então falhar mesmo sem nenhum problema no seu servidor. Esperar é a única solução.
Nunca tente contornar os limites de taxa com contas extras ou scripts. Eles existem para proteger a plataforma, e contorná-los arrisca um banimento.
O que você pode fazer como dono
- Espalhe tarefas grandes em vez de executá-las todas de uma vez.
- Evite renomear canais em um temporizador.
- Prefira bots que coloquem as requisições em fila e respeitem os limites.
Limites de taxa e Noxyr
Os logs do servidor do Noxyr são publicados no máximo a cada poucos segundos por canal e dez por vez, então um raid ou uma limpeza grande nunca inunda o canal de logs, como descrito na documentação de logs do servidor. O envio de mensagens do chat ao vivo do próprio Noxyr também é limitado para evitar inundações. Bots personalizados têm uma regra relacionada: cada mudança para um novo host é um novo login no Discord, então há uma espera de cinco minutos entre as mudanças; veja hospedagem de bot personalizado.
Os limites de taxa também levam bots grandes a se dividir em várias conexões; veja sharding. Se o seu bot parecer travado, confira primeiro a página de status e ping.
Perguntas frequentes
O que significa HTTP 429 no Discord?
Requisições demais. O Discord está dizendo ao bot para esperar o tempo indicado no valor Retry-After antes de tentar de novo.
Limite de taxa é um banimento?
Não. É uma pausa curta. Só o abuso repetido pode levar a um bloqueio temporário mais longo.
Por que meu bot responde devagar durante uma limpeza grande?
Ações em massa são limitadas pelo Discord, então o bot precisa espalhá-las.