openclaw - 💡(How to fix) Fix feat: configurable announce timeout (hardcoded 30s causes A2A reply loss) [1 participants]

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…
GitHub stats
openclaw/openclaw#59339Fetched 2026-04-08 02:25:44
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0
Participants

Root Cause

Root Cause (triple timeout cascade)

RAW_BUFFERClick to expand / collapse

Problem

The announce step in sessions_send has a hardcoded 30-second timeout (announceTimeoutMs=30000). When an agent completes its work after the announce timeout expires, the reply is silently dropped.

This makes async A2A communication (fire-and-forget) unreliable — the sending agent never receives the reply.

Reproduction

  1. Send a message to another agent with sessions_send(timeoutSeconds=0)
  2. Target agent processes the message and generates a reply
  3. Announce step times out after 30s
  4. Reply is lost — requesting agent never receives it

Test results (3 agents tested):

  • CTO→CTO (self-loop, warm agent): agent RPC 118ms ✓, announce ❌ 30s timeout
  • CTO→COO: agent RPC 93ms ✓, session lane queued 3.3min, announce ❌ 30s timeout
  • CTO→CKO: agent RPC 1964ms ✓, session lane queued 3.5min, announce ❌ 30s timeout

The agents did process the message and generate replies (verified via sessions_list with messageLimit=1), but all replies were dropped by the announce timeout.

Root Cause (triple timeout cascade)

Three hardcoded/default timeouts compound the issue:

TimeoutValueLocation
agent RPC10s (hardcoded)Gateway
agent.wait30s (default)Gateway
announce30s (hardcoded)Gateway

Cold-start agents need 40-50s to initialize — all three timeouts expire before the agent can respond.

Even warm agents fail because session lane queuing adds 3-5 minutes delay when the target session has prior messages being processed.

Impact

  • Fire-and-forget (timeoutSeconds=0) is effectively one-way: CEO→Agent works, Agent→CEO fails
  • Async A2A communication is broken for all practical purposes
  • Users must use sync mode (timeoutSeconds=120) which blocks the sending agent

Proposed Fix

  1. Make announce timeout configurable — link it to the timeoutSeconds parameter in sessions_send, or add a separate announceTimeoutSeconds parameter

  2. Recommended default behavior:

    • If timeoutSeconds=0 (fire-and-forget), announce should use a generous default (e.g., 120s) or skip announce entirely and let the agent use sessions_send to push results
    • If timeoutSeconds>0, announce timeout should match
  3. Bonus: agent RPC timeout configurability — allow overriding the 10s agent RPC timeout for cold-start scenarios

Environment

  • OpenClaw version: latest (2026-04-02)
  • Platform: Windows 10 x64
  • Gateway: ws://127.0.0.1:18789
  • Models: mimo-v2-pro, mimo-v2-omni, deepseek-v3.1

extent analysis

TL;DR

Make the announce timeout configurable and consider setting a generous default for fire-and-forget scenarios to prevent replies from being silently dropped.

Guidance

  • Review the proposed fix to make the announce timeout configurable, potentially linking it to the timeoutSeconds parameter in sessions_send.
  • Consider the recommended default behavior for fire-and-forget scenarios, where a generous default (e.g., 120s) or skipping announce entirely could be used.
  • Evaluate the need for configurability of the agent RPC timeout, especially for cold-start scenarios.
  • Test the impact of session lane queuing on the overall timeout and consider optimizations to reduce delays.

Example

No specific code snippet is provided as the issue focuses on configuration and timeout adjustments rather than code changes.

Notes

The solution may require adjustments based on specific use cases and performance requirements. The proposed fix aims to address the issue of silently dropped replies but may introduce new considerations for timeout settings and their impact on system performance.

Recommendation

Apply the workaround by making the announce timeout configurable and adjusting the default behavior for fire-and-forget scenarios to prevent dropped replies, as this directly addresses the identified issue and provides a flexible solution for different use cases.

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…

Still need to ship something?

×6

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

Back to top recommendations

TRENDING