Solução de problemas¶

O bostie escreve um aviso no log para cada erro que consegue perceber. Esta página os lista pelo que você observa, com a linha de log a procurar e a correção.
Um comando diz "O aplicativo não respondeu"¶
| Linha de log | Causa | Correção |
|---|---|---|
nothing handles interaction ... (command 'name') |
o Discord ainda tem um comando que o bot em execução não define, muitas vezes depois de uma renomeação com auto_sync=False, ou o comando fica em outro processo |
sincronize os comandos (Registrando comandos) |
nothing handles interaction ... (custom_id '...') |
nenhum modelo de on_component ou on_modal corresponde ao custom id |
confira o modelo com os IDs que você envia; monte-os com route.id(...) |
... returned without answering |
o handler terminou sem respond, defer ou modal |
responda em todos os caminhos, incluindo os retornos antecipados |
... returned after deferring without answering |
ele adiou e nunca respondeu, então "pensando…" fica até o token expirar | chame respond depois do trabalho lento |
interaction ... reached its handler ... s after it was received; something is blocking the event loop |
código bloqueante em um handler ou listener segurou o event loop além dos 3 segundos do Discord | mova o trabalho para asyncio.to_thread, ou diminua auto_defer |
interaction ... was replayed ... s after it was created; its token is dead |
a interação veio na reprodução de uma sessão retomada, tarde demais para responder | nada; o usuário pode executá-la de novo |
Uma exceção não tratada em um handler vai para o log com o traceback, e o usuário vê "Something went wrong.": adicione um hook de erro para responder algo melhor.
Os eventos não chegam¶
... listens to EVENT, which needs the INTENT intent; add it to Bot(intents=...): o bot não pediu a intent. Adicione-a e, se for uma intent privilegiada, ative-a também no Developer Portal.start()levantaPrivilegedIntentsRequired: o bot pediu uma intent privilegiada que o portal não permite. Ative-a em Bot → Privileged Gateway Intents, ou remova-a deintents.message.contentvem vazio em servidores: falta a intentMESSAGE_CONTENT.EVENT has an unexpected shape (...); typed listeners skip it: o Discord enviou um payload que não cabe na classe do evento, registrado no log uma vez por nome de evento. Os listeners deRawEventainda o recebem; por favor, informe a linha.oldéNoneem eventos de atualização: o cache não tinha o objeto; veja Cache para saber o que ele guarda.
O gateway¶
shard N paused reading: ... bytes of events are waiting because the event loop is not keeping up: algo bloqueia o event loop; veja Contrapressão.close code N (...) means Discord refused what bostie sent; this is likely a bostie bug, please report it: os códigos 4001, 4002, 4005 e 4008 significam que o bostie enviou algo que o Discord recusou.the members of guild N stopped arriving; the cache lacks some: uma requisição de membros para o cache esgotou o tempo depois de 30 segundos por bloco.start()levantaInvalidToken: o token está errado ou foi redefinido; copie-o de novo da página Bot.
REST¶
N invalid requests (401, 403, 429) in the last 10 minutes; Discord bans the IP at 10 000: o bot continua fazendo requisições que o Discord recusa, geralmente por falta de permissões ou por um webhook morto. Encontre as chamadas que falham nas exceções que elas levantam.RateLimitedlevantada sem que uma requisição chegue ao Discord: a rota continua limitada por mais tempo quemax_rate_limit_wait; aumente-o emHTTPSettingsou tente de novo mais tarde.
Respostas¶
ephemeral=... is ignored because the message being edited is ...: uma mensagem não pode mudar entre efêmera e pública depois de enviada.Discord allows 5 follow-ups to an interaction of an app installed only to the user: a sexta mensagem de acompanhamento de um app instalado no usuário falha.the error hook ... left interaction ... unanswered; bostie answered 'Something went wrong.': faça o hook responder.
Voz¶
nobody hears the bot in guild N: it is server muted, ouit is suppressed on this stage; use vc.stage('request'): um moderador silenciou o bot no servidor, ou ele é um ouvinte em um palco.a moderator deafened the bot in guild N, so Discord sends it no audio: os receptores não recebem nada até que o bot deixe de estar ensurdecido.VoiceConnectErrorcom o motivoTIMEOUT: o Discord não respondeu à entrada em atétimeoutsegundos; o canal pode estar cheio, ou falta ao bot a permissão Conectar.MissingIntent: voice needs Intents.GUILD_VOICE_STATES: a voz precisa dessa intent, queIntents.DEFAULTinclui.
Relatando um bug¶
python -m bostie imprime as versões a incluir, e bostie.voice.versions() acrescenta a libopus e o DAVE para problemas de voz. Defina o logger relevante como DEBUG antes de iniciar o bot, como Logging mostra, e inclua as linhas em torno do problema, com o token removido.