openclaw - 💡(How to fix) Fix Bug: async sessions_send results are not delivered cleanly to Telegram-bound requester session

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…

versions: OpenClaw 2026.5.7, Telegram channel

When sessions_send(..., timeoutSeconds: 0) is used from a Telegram-bound main session to task another agent session, the target agent completes successfully, but the completion result is not delivered back as a clean Telegram message to the requester session.

Observed behavior includes repeated [Inter-session message] wrapper payloads and alternating sourceChannel values (webchat / telegram) for the same completion marker. In some cases the assistant reply exists in the session transcript but does not appear as a normal Telegram message.

This may be related to #34308, #44153, #45084, and #75991, but this is reproducible on 2026.5.7 with a minimal sessions_send repro.

Error Message

For a single target-agent result, the requester session received repeated inter-session payloads like:

Root Cause

versions: OpenClaw 2026.5.7, Telegram channel

When sessions_send(..., timeoutSeconds: 0) is used from a Telegram-bound main session to task another agent session, the target agent completes successfully, but the completion result is not delivered back as a clean Telegram message to the requester session.

Observed behavior includes repeated [Inter-session message] wrapper payloads and alternating sourceChannel values (webchat / telegram) for the same completion marker. In some cases the assistant reply exists in the session transcript but does not appear as a normal Telegram message.

This may be related to #34308, #44153, #45084, and #75991, but this is reproducible on 2026.5.7 with a minimal sessions_send repro.

Fix Action

Fix / Workaround

A local attempt to patch built dist was reverted. The useful finding from that experiment: disabling the A2A ping-pong/announce loop stopped the duplicate spam, but did not restore clean requester delivery. This suggests the issue may involve more than one path:

The local package was restored from backup after testing; no local core patch remains active.

Code Example

OC_DELIVERY_REPRO_20260510_0050 razrab_done

---

[Inter-session message] sourceSession=agent:razrab:telegram:direct:111887515 sourceChannel=webchat sourceTool=sessions_send isUser=false
...
OC_DELIVERY_REPRO_20260510_0050 razrab_done

---

sourceChannel=telegram

---

sourceChannel=webchat

---

OC_DELIVERY_REPRO_20260510_0050 razrab_done
RAW_BUFFERClick to expand / collapse

Bug: async sessions_send result is not delivered cleanly to Telegram-bound requester session; duplicate inter-session wrappers may appear

Summary

versions: OpenClaw 2026.5.7, Telegram channel

When sessions_send(..., timeoutSeconds: 0) is used from a Telegram-bound main session to task another agent session, the target agent completes successfully, but the completion result is not delivered back as a clean Telegram message to the requester session.

Observed behavior includes repeated [Inter-session message] wrapper payloads and alternating sourceChannel values (webchat / telegram) for the same completion marker. In some cases the assistant reply exists in the session transcript but does not appear as a normal Telegram message.

This may be related to #34308, #44153, #45084, and #75991, but this is reproducible on 2026.5.7 with a minimal sessions_send repro.

Environment

  • OpenClaw: 2026.5.7
  • Install: npm global package
  • OS: Linux x64, Node 22.22.0
  • Channel: Telegram direct chat
  • Gateway: systemd user service
  • Agent setup: main requester + razrab target agent

Minimal repro

  1. Start from a Telegram direct session bound to main.
  2. From main, call sessions_send to a target agent session with timeoutSeconds: 0.
  3. Ask the target agent to return a unique marker, for example:
OC_DELIVERY_REPRO_20260510_0050 razrab_done
  1. Observe the requester Telegram chat and the requester session transcript.

Observed behavior

For a single target-agent result, the requester session received repeated inter-session payloads like:

[Inter-session message] sourceSession=agent:razrab:telegram:direct:111887515 sourceChannel=webchat sourceTool=sessions_send isUser=false
...
OC_DELIVERY_REPRO_20260510_0050 razrab_done

Then again with:

sourceChannel=telegram

Then again with:

sourceChannel=webchat

The same marker was observed at least 4 times:

OC_DELIVERY_REPRO_20260510_0050 razrab_done

Also, when the requester assistant replied normally to the inter-session event, that reply could be present in the session transcript without clean Telegram delivery.

Expected behavior

For sessions_send(..., timeoutSeconds: 0) targeting another agent from a Telegram-bound requester session:

  • the target agent's final result should be delivered once to the requester session's external delivery context, if announce delivery is enabled/expected;
  • it should not leak the internal [Inter-session message] wrapper to the user;
  • it should not ping-pong duplicate copies of the same completion result;
  • it should preserve the requester session's Telegram routing and not alternate between webchat and telegram provenance for the same completion.

Additional notes

A local attempt to patch built dist was reverted. The useful finding from that experiment: disabling the A2A ping-pong/announce loop stopped the duplicate spam, but did not restore clean requester delivery. This suggests the issue may involve more than one path:

  1. async sessions_send result capture / announce flow;
  2. requester delivery-context resolution;
  3. suppression/serialization of internal inter-session wrappers.

The local package was restored from backup after testing; no local core patch remains active.

Related issues

  • #34308 — Responses to inter-session messages not delivered to bound Telegram channel
  • #44153 — sessions_send from sub-agent flips parent session deliveryContext from Telegram to webchat
  • #45084 — Cron announce step leaks ANNOUNCE_SKIP reply to user Telegram when lastChannel is Telegram
  • #75991 — backend responses written to transcript but not delivered to Telegram

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

For sessions_send(..., timeoutSeconds: 0) targeting another agent from a Telegram-bound requester session:

  • the target agent's final result should be delivered once to the requester session's external delivery context, if announce delivery is enabled/expected;
  • it should not leak the internal [Inter-session message] wrapper to the user;
  • it should not ping-pong duplicate copies of the same completion result;
  • it should preserve the requester session's Telegram routing and not alternate between webchat and telegram provenance for the same completion.

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 Bug: async sessions_send results are not delivered cleanly to Telegram-bound requester session