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

  1. Rate limit - Enviando mensagens muito rápido
  2. Número bloqueado - Destinatário bloqueou o bot
  3. Conexão perdida - Desconectado do serviço
  4. Fila cheia - Muitas mensagens aguardando
  5. 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