openclaw - 💡(How to fix) Fix WhatsApp text messages not received — event loop blocking causes connection drops

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

WhatsApp plugin does NOT process any text messages from any sender — not from self, not from allowlisted contacts, not from groups. Additionally, the WhatsApp connection drops every ~30 seconds (status 408) because the Node.js event loop gets blocked for 60+ seconds when processing images via cloud vision models, preventing Baileys from sending keepalive packets.

Root Cause

WhatsApp plugin does NOT process any text messages from any sender — not from self, not from allowlisted contacts, not from groups. Additionally, the WhatsApp connection drops every ~30 seconds (status 408) because the Node.js event loop gets blocked for 60+ seconds when processing images via cloud vision models, preventing Baileys from sending keepalive packets.

Fix Action

Fix / Workaround

Workaround: None for text messaging. Telegram works as alternative channel.

Code Example

Gateway logs show the following cycle repeating:

[eventLoopDelay] 62.612ms — critical liveness warning
[whatsapp] status=408 — disconnected
[whatsapp] Opening handshake has timed out
[image] image description timed out after 60000ms
[whatsapp] status=200 — reconnected

The cycle: connect → image received → vision model timeout (60s) → event loop blocked → WhatsApp keepalive missed → disconnect (408) → reconnect → repeat

WhatsApp config:
{
  "channels": {
    "whatsapp": {
      "enabled": true,
      "dmPolicy": "allowlist",
      "groupPolicy": "allowlist",
      "selfChatMode": true,
      "allowFrom": ["+393312233075", "+393921235300"],
      "debounceMs": 0,
      "mediaMaxMb": 50
    }
  }
}

Vision models attempted (both timeout at 60s): ollama/kimi-k2.5:cloud, google/gemini-3-flash-preview
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

WhatsApp plugin does NOT process any text messages from any sender — not from self, not from allowlisted contacts, not from groups. Additionally, the WhatsApp connection drops every ~30 seconds (status 408) because the Node.js event loop gets blocked for 60+ seconds when processing images via cloud vision models, preventing Baileys from sending keepalive packets.

Steps to reproduce

Configure WhatsApp with allowFrom including self and a secondary contact Successfully link WhatsApp via QR code scan Send a text message FROM phone (+393312233075) to self on WhatsApp → ❌ NOT received in OpenClaw Send a text message FROM secondary contact (+393921235300) on WhatsApp → ❌ NOT received Send a text message FROM self via OpenClaw web UI (control-ui) → ✅ works (but this is NOT WhatsApp) Send an audio/image FROM phone on WhatsApp → ✅ file appears in media/inbound/ but is NOT processed into a session

Expected behavior

Text messages from any contact in allowFrom should create a session and be processed by the agent. Self-chat messages from WhatsApp should also be processed.

Actual behavior

NO text messages from WhatsApp are processed — not from self, not from contacts, not from groups Only messages sent via the OpenClaw web UI (control-ui sender) are processed, which is NOT the WhatsApp channel Media files from WhatsApp DO arrive in media/inbound/ but are NOT processed into sessions No WhatsApp session appears in sessions_list at all openclaw channels status only shows Telegram; WhatsApp does not appear despite being enabled and connected

OpenClaw version

OpenClaw version: 2026.5.7 (eeef486)

Operating system

Windows 10 (x64)

Install method

npm install -g openclaw@latest

Model

ollama/glm-5.1:cloud

Provider / routing chain

openclaw -> ollama proxy (localhost:11434) -> cloud models

Additional provider/model setup details

Primary model: ollama/glm-5.1:cloud (text-only, no image support). Vision models route through local Ollama proxy (127.0.0.1:11434) to cloud endpoints. All three available vision models timeout: ollama/kimi-k2.5:cloud (60s), ollama/gemma4:31b-cloud (60s), google/gemini-3-flash-preview (1ms — misconfigured). This causes event loop blocking which kills WhatsApp keepalives.

Logs, screenshots, and evidence

Gateway logs show the following cycle repeating:

[eventLoopDelay] 62.612ms — critical liveness warning
[whatsapp] status=408 — disconnected
[whatsapp] Opening handshake has timed out
[image] image description timed out after 60000ms
[whatsapp] status=200 — reconnected

The cycle: connect → image received → vision model timeout (60s) → event loop blocked → WhatsApp keepalive missed → disconnect (408) → reconnect → repeat

WhatsApp config:
{
  "channels": {
    "whatsapp": {
      "enabled": true,
      "dmPolicy": "allowlist",
      "groupPolicy": "allowlist",
      "selfChatMode": true,
      "allowFrom": ["+393312233075", "+393921235300"],
      "debounceMs": 0,
      "mediaMaxMb": 50
    }
  }
}

Vision models attempted (both timeout at 60s): ollama/kimi-k2.5:cloud, google/gemini-3-flash-preview

Impact and severity

Affected: All WhatsApp channel users Severity: Blocks workflow — WhatsApp is completely non-functional for text messaging Frequency: Always — every text message fails, connection drops every ~30s Consequence: Missed messages from all contacts, no WhatsApp session is ever created, only Telegram works as fallback

Additional information

Root cause appears to be event loop blocking during cloud vision model calls. When an image is received, the await on the vision model (up to 60s timeout) blocks the Node.js event loop, preventing Baileys from sending WhatsApp keepalives. This causes the 408 disconnect cycle.

Suggested fix: Decouple image description from the main event loop. Acknowledge WhatsApp messages immediately, process image description in background, send AI response when ready. This prevents keepalive misses during heavy processing.

Workaround: None for text messaging. Telegram works as alternative channel.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

FAQ

Expected behavior

Text messages from any contact in allowFrom should create a session and be processed by the agent. Self-chat messages from WhatsApp should also be processed.

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix WhatsApp text messages not received — event loop blocking causes connection drops