Mensagens Não Enviadas
Mensagens Não Enviadas
Descrição do Problema
O bot não consegue enviar mensagens ou elas ficam presas na fila:
Message sending failed
Rate limit exceeded
Queue is full
Unable to deliver message
Possíveis Causas
- Rate limit - Enviando mensagens muito rápido
- Número bloqueado - Destinatário bloqueou o bot
- Conexão perdida - Desconectado do serviço
- Fila cheia - Muitas mensagens aguardando
- Formato inválido - Mensagem com problemas
Soluções
1. Verificar Status da Conexão
# Ver status do gateway
clawdbot gateway status
# Reconectar se necessário
clawdbot gateway reconnect
2. Verificar Fila de Mensagens
# Ver mensagens pendentes
clawdbot queue status
# Limpar fila se necessário
clawdbot queue clear
# Reprocessar mensagens falhas
clawdbot queue retry
3. Respeitar Rate Limits
# Configurar rate limiting adequado
rate_limit:
messages_per_second: 1
messages_per_minute: 30
delay_between_messages: 1000 # 1 segundo
// Implementar delay entre mensagens
async function sendWithDelay(messages) {
for (const msg of messages) {
await sendMessage(msg);
await sleep(1000); // 1 segundo entre mensagens
}
}
4. Verificar Logs de Erro
# Ver erros de envio
clawdbot logs | grep -i "send\|deliver\|failed"
# Ver detalhes de mensagens específicas
clawdbot logs | grep "message_id"
5. Verificar Formato da Mensagem
// Mensagem válida
const message = {
to: "5511999999999@s.whatsapp.net",
text: "Olá, esta é uma mensagem de teste!"
};
// Verificar se o número está correto
// Formato: código país + DDD + número + @s.whatsapp.net
6. Verificar Se Foi Bloqueado
# Verificar status do número
clawdbot contact status 5511999999999
# Se bloqueado, não há muito o que fazer
# O destinatário precisa desbloquear
7. Implementar Retry
async function sendWithRetry(message, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
await sendMessage(message);
return true;
} catch (error) {
console.log(`Tentativa ${i + 1} falhou:`, error.message);
await sleep(1000 * (i + 1)); // Backoff
}
}
return false;
}
Diagnóstico
# Script de diagnóstico
#!/bin/bash
echo "=== Diagnóstico de Envio de Mensagens ==="
echo -e "\n1. Status do Gateway:"
clawdbot gateway status
echo -e "\n2. Fila de Mensagens:"
clawdbot queue status
echo -e "\n3. Últimos Erros:"
clawdbot logs --tail 20 | grep -i "error\|failed"
echo -e "\n4. Conexão:"
clawdbot connection status
Problemas Relacionados
Prevenção
- Respeite os rate limits de cada plataforma
- Implemente filas com retry automático
- Monitore taxa de sucesso de envio
- Trate erros graciosamente