Skip to content

Discord: occasional duplicate message posts when sending notifications #26612

@Louise-Qiuqiu

Description

@Louise-Qiuqiu

Summary

OpenClaw sometimes posts duplicate messages to Discord (same content, same bot user) even though only one message.send tool call was made.

This was observed while posting a Binance-monitor alert into a Discord channel.

Placeholders for screenshots :

  • pic1
Image
  • pic2
Image

What happened

A single message.send returned success with one messageId, but Discord ended up with two messages containing identical content.

Example from Discord channel history:

  • Message A: 1476233673207713853 @ 2026-02-25T15:05:34Z
  • Message B: 1476233814580658177 @ 2026-02-25T15:06:08Z
  • Same author (OpenClaw bot), same content.

The OpenClaw tool call returned only one success result (for Message A).

Expected

Only one Discord message should be created for a single send.

Actual

Two consecutive identical Discord messages are created.

Environment

  • OpenClaw version: 2026.2.24
  • Provider: Discord

Related cron job (sanitized)

This duplication was observed in the context of a cron-driven notification.

jobId: 2999a290-7f49-4418-8e28-bc0df172ab03
name: "币安持仓监控"
schedule:
  kind: cron
  expr: "0 * * * *"
  tz: "Asia/Shanghai"
  staggerMs: 300000
sessionTarget: isolated
payload:
  kind: agentTurn
  model: openai-codex/gpt-5.3-codex
  thinking: medium
  timeoutSeconds: 420
  runs:
    - python3 $WORKSPACE/scripts/binance/binance_query.py --all
  stateFile: $WORKSPACE/state/binance/monitor-state.json
  note: (no secrets; paths shown as $WORKSPACE)
delivery:
  mode: announce
  channel: discord
  to: "channel:<discord-channel-id>"
  bestEffort: true

Notes / hypotheses

  • Could be a retry/ack bug in the Discord transport (e.g., network timeout after successful post triggers a re-send).
  • The duplicate appears ~30s later, which looks like a retry interval.

How to reproduce (best effort)

  1. Configure a cron job with delivery.mode=announce to a Discord channel.
  2. On a run that should "push", have the assistant/tooling send a Discord message (via the message tool).
  3. Observe whether Discord sometimes receives the same content twice.

If you want more debugging data, I can provide additional message IDs/timestamps from Discord history.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions