OpenClaw WhatsApp: Every Image or File Gets Sent Twice (2026.4.15 Regression)

Published April 18, 2026 · Bug #68056 · Affects: 2026.4.15 · Setup: OpenClaw with WhatsApp + media replies

You send one message. Your agent generates one chart, one image, or one file. WhatsApp delivers two copies — a few hundred milliseconds apart. Your outbound media folder shows two files staged for the same request. Your gateway logs say "Sent media reply" twice for the same conversation.

This is a confirmed regression introduced in OpenClaw 2026.4.15. It affects anyone using WhatsApp with channels.whatsapp.blockStreaming: false and an agent that returns media responses.

What's happening

The root cause is a double-invocation in the reply-media pipeline. A stack trace from the 4.15 bundle shows resolveOutboundAttachmentFromUrl being called twice for the same mediaUrl on a single reply — once from the normal reply path and once from a second code path introduced in 4.15's reply-media refactor.

Specifically, persistLocalReplyMedia in reply-media-paths.runtime-B671n_FS.js calls normalizeMediaSource, which in turn triggers resolveOutboundAttachmentFromUrl a second time. The result: two outbound files under ~/.openclaw/media/outbound/ staged within the same second, and two WhatsApp sends.

Who's affected

If you're on 2026.4.14 or earlier, you're not affected — this is a 4.15-only regression.

Workarounds while waiting for a patch

Option 1: Roll back to 2026.4.14 (safest)

npm install -g openclaw@2026.4.14
openclaw gateway restart

4.14 doesn't have this bug. You'll lose 4.15's other fixes, but your WhatsApp media replies will work correctly.

Option 2: Enable blockStreaming

Set channels.whatsapp.blockStreaming: true in your config. This changes how replies are flushed and appears to avoid the double-fire path in 4.15. Side effect: streaming responses are blocked, so text replies may feel slightly slower.

# In your openclaw.json
"channels": {
  "whatsapp": {
    "blockStreaming": true
  }
}

Option 3: Restrict media tool permissions temporarily

If your agent doesn't need to send media proactively, add tools.deny: ["group:media"] to disable the media tool group until a fix ships. Text replies are unaffected.

How to confirm you're hitting this bug

# Check for duplicate outbound files (same second, same session)
ls -lt ~/.openclaw/media/outbound/ | head -20

# Check gateway logs for duplicate sends
grep "Sent media reply" ~/.openclaw/logs/gateway.log | uniq -D

If you see two files with nearly identical timestamps for the same conversation, you're hitting #68056.

Status

This is an open bug as of April 18, 2026. Watch GitHub issue #68056 for a patch. Given it's a regression, expect a point release fix soon.


Hitting this or another OpenClaw setup issue? ClawReady offers fixed-price setup and troubleshooting — we've seen most of these bugs before you have.