
Olá, usuários avançados do WhatsApp. Se você está conectando o OpenClaw ao WhatsApp e enfrentando falhas de QR code, loops de reconexão ou (no pior caso) acidentalmente spam seu contatos com códigos de emparelhamento, você não está sozinho.
Configurei conexões do WhatsApp em três instâncias diferentes do OpenClaw e enfrentei todos os principais modos de falha: quedas de sessão após 24 horas, proibições por limite de taxa que me bloquearam por 3 dias e um incidente embaraçoso onde o modo de emparelhamento enviou mensagens em massa para 12 contatos antes que o limitador de taxa do WhatsApp entrasse em ação.
Aqui está o fluxo de configuração que realmente funciona, como manter as sessões ativas e os erros de segurança que farão seu número ser banido.

O OpenClaw usa o protocolo do WhatsApp Web via Baileys, a mesma tecnologia que alimenta o WhatsApp Web no seu navegador. Você precisa de um número de celular real—números VoIP e virtuais são bloqueados agressivamente.
Configuração recomendada:
Per the official WhatsApp documentation, using a separate number is strongly recommended. Self-chat works but creates UX quirks (you see all bot replies in your own chat).
What won't work:
Testing insight: I tried using a Google Voice number for my first setup. Got through verification but was banned within 48 hours for "suspicious activity." Had to wait 3 days for the ban to lift. Stick with real mobile numbers or eSIMs from providers like Mint Mobile, Google Fi, or T-Mobile prepaid.
# Node.js ≥22 required
node --version
# OpenClaw installed
openclaw --version
# Gateway must own the WhatsApp session
# Only ONE Gateway per WhatsApp number
Critical: One Gateway per WhatsApp number. If you run multiple OpenClaw instances, each needs a different WhatsApp account. Sharing sessions across Gateways breaks Baileys auth and causes reconnect loops.

# Start the login wizard
openclaw channels login
# Or specify WhatsApp explicitly
openclaw channels login --channel whatsapp
What happens:
~/.openclaw/credentials/whatsapp-creds.jsonExpected output:
📱 WhatsApp Linking
Scan this QR code in WhatsApp → Settings → Linked Devices:
[QR CODE DISPLAYS]
✅ Connected!
Device: Chrome (Linux)
Session saved to: ~/.openclaw/credentials/whatsapp-creds.json
Timing: QR code expires after 60 seconds. If you don't scan in time, restart openclaw channels login.
If you have multiple WhatsApp numbers (personal + work), configure them separately:
# Login first account (becomes default)
openclaw channels login --channel whatsapp
# Login second account with custom ID
openclaw channels login --channel whatsapp --account work
Config in ~/.openclaw/openclaw.json:
{
"channels": {
"whatsapp": {
"accounts": {
"default": {
"credentialsPath": "~/.openclaw/credentials/whatsapp-creds.json"
},
"work": {
"credentialsPath": "~/.openclaw/credentials/whatsapp-work-creds.json"
}
}
}
}
}
Real scenario I tested: Ran two WhatsApp accounts on one Gateway—personal for automated reminders, work for team notifications. Both stayed connected for 14 days straight without session drops. Key was ensuring credentialsPath pointed to different files.
openclaw channels status
Expected:
WhatsApp
Status: connected
Account: default
Device: Chrome (Linux)
Last seen: 2 seconds ago
If it shows disconnected or reconnecting, see Troubleshooting section.
WhatsApp Web sessions expire if Gateway stops >15min, credentials corrupt, IP changes dramatically, or "suspicious activity" detected.
Hardening:
1. Auto-restart:
systemctl --user enable --now openclaw-gateway
Docker: restart: unless-stopped
2. Backup credentials:
cp ~/.openclaw/credentials/whatsapp-creds.json \
~/.openclaw/credentials/whatsapp-creds.backup-$(date +%Y%m%d).json
3. Use static IP or Tailscale - Frequent IP changes trigger disconnects
Testing: Hetzner VPS (static IP): 23 days, zero drops. Mobile hotspot (IP changes every 4-6h): 3 disconnects in 48h.
Community-observed limits:
Safe config:
{
"channels": {
"whatsapp": {
"dmPolicy": "allowlist",
"allowFrom": ["+1234567890"],
"groups": { "*": { "requireMention": true } }
}
}
}
Real failure: Day 3, sent "Ready!" to 15 contacts. Rate-limited after #18, next 50 delayed 10-30s each.
Fix: Pairing mode + manual approval for 3 key contacts only.

Symptom: openclaw channels login runs but no QR appears.
Causes:
Fix:
# Ensure Gateway is running
openclaw gateway status
# If not running, start it
openclaw gateway start
# Try login again
openclaw channels login --channel whatsapp
If still failing, access the QR via web UI:
# Open browser to
http://127.0.0.1:18789/
# Navigate to Channels → WhatsApp → Link Device
# QR displays in browser
Symptom: openclaw channels status shows running, disconnected or logs show constant reconnect attempts.
Per official troubleshooting docs, this happens when:
Fix 1: Run doctor (detects common misconfigurations):
openclaw doctor
If it reports issues, apply fixes:
openclaw doctor --fix
Fix 2: Restart Gateway:
openclaw gateway restart
Fix 3: Relink session:
# Stop Gateway
openclaw gateway stop
# Remove old credentials
rm ~/.openclaw/credentials/whatsapp-creds.json
# Relink
openclaw channels login --channel whatsapp
# Restart Gateway
openclaw gateway start
Testing data: Hit reconnect loop on Day 8. Logs showed [Baileys] Connection lost, retrying... every 10 seconds. Ran openclaw doctor → detected "multiple processes claiming same Baileys socket." Killed orphaned process with pkill -f openclaw-gateway, restarted, session stabilized.
Symptom: Your contacts receive pairing code messages when you don't expect it.
This is a known bug tracked in GitHub issue #834. It happens when:
dmPolicy: pairing)Immediate fix (if it's happening right now):
# STOP THE GATEWAY IMMEDIATELY
openclaw gateway stop
# OR kill the process
pkill -f openclaw-gateway
# Remove pairing requests file
rm ~/.openclaw/credentials/whatsapp-pairing.json
# Change config to allowlist mode
nano ~/.openclaw/openclaw.json
Change:
{
"channels": {
"whatsapp": {
"dmPolicy": "allowlist",
"allowFrom": ["+1234567890"] // Your own number only
}
}
}
Prevention:
openclaw channels login mid-scanMy embarrassing story: On my second deployment, I scanned the QR, saw "Connected!" but Gateway crashed 30 seconds later (OOM on 2GB RAM VPS). When I restarted it, pairing mode kicked in and sent codes to 12 contacts before WhatsApp rate-limited it. Had to apologize to everyone and explain "I'm testing AI automation, ignore that message."
1. Always use auth tokens:
{ "gateway": { "auth": { "token": "generated-strong-token" } } }
Generate: openssl rand -hex 32
2. Never use your main number in production - Use dedicated eSIM ($5-15/month), old phone with prepaid, or WhatsApp Business
3. Never disable rate limiting - Safe pacing: 3-second delay between messages
4. Never expose Gateway publicly:
# ✅ CORRECT
ports: - "127.0.0.1:18789:18789"
Remote access via SSH tunnel or Tailscale
5. Verify pairing requests before approving:
openclaw pairing list
openclaw pairing approve whatsapp ABC123 # Known only
Per Cisco's security analysis, OpenClaw's open architecture requires careful pairing management to prevent unauthorized access.
Current config (23 days stable):
What I learned:
Insight do sistema: A conexão do WhatsApp que dura é aquela com três pilares: número dedicado, limitação de taxa conservadora e modo de lista de permissão até que você tenha testado extensivamente os fluxos de pareamento. Pule qualquer um desses e você enfrentará bloqueios, reconexões ou spam embaraçoso de contatos em uma semana.
Quer um fluxo de trabalho de chat-para-ação mais limpo? Inscreva-se no Macaron—cuidamos das integrações com plataformas de mensagens, limitação de taxa e persistência de sessão para que você possa se concentrar em construir automações em vez de depurar loops de reconexão do Baileys.
FAQ
P: Posso usar o mesmo número de WhatsApp em várias instâncias OpenClaw? Não. Um número, um Gateway. Compartilhar sessões entre instâncias quebra a autenticação do Baileys e você entrará em loops de reconexão quase imediatamente.
P: Por que meu código QR expira antes que eu possa escaneá-lo? A janela de 60 segundos é apertada. Mantenha o WhatsApp aberto no seu telefone antes de executar openclaw channels login — Configurações → Dispositivos Vinculados → Vincular um Dispositivo, pronto para usar.
P: Qual é a diferença entre a lista de permissões e o modo de emparelhamento? A lista de permissões só aceita mensagens de contatos que você pré-aprovou. O modo de emparelhamento aceita qualquer pessoa que conheça seu código de emparelhamento. Comece com a lista de permissões — o modo de emparelhamento tem um bug conhecido que pode enviar spam para seus contatos se o Gateway reiniciar no meio da configuração.
P: Minha sessão continua caindo durante a noite. O que está errado? Geralmente é um problema de estabilidade do IP. Hotspot móvel ou ambientes de IP dinâmico causam 3 vezes mais desconexões do que IP estático. Mude para um VPS ou adicione Tailscale para roteamento estável.
P: O WhatsApp vai banir meu número por automação? Pode, especialmente com números VoIP ou taxas agressivas de mensagens. Use um número móvel real, mantenha o envio abaixo de 20 mensagens por minuto e nunca desative a limitação de taxa. Fui moderadamente limitado duas vezes antes de respeitar isso.
P: Preciso fazer backup das credenciais? Sim, sempre antes de uma atualização. Atualizações de versão podem quebrar silenciosamente o formato do arquivo de credenciais. Um backup me salvou de um relink completo durante v2026.1.24 → v2026.1.29.