openclaw - 💡(How to fix) Fix [Bug]: Parallel tool results can be replaced by synthetic transcript-repair errors, stalling Discord turn [1 comments, 2 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#71380Fetched 2026-04-26 05:13:25
View on GitHub
Comments
1
Participants
2
Timeline
2
Reactions
0
Timeline (top)
closed ×1commented ×1

During a Discord-hosted agent turn on OpenClaw 2026.4.23, a multi_tool_use.parallel validation step emitted synthetic transcript-repair tool results instead of the actual child tool results:

[openclaw] missing tool result in session history; inserted synthetic error result for transcript repair.

The underlying child exec jobs either continued or completed, but the active assistant turn was interrupted/stalled until the user sent a follow-up message.

Error Message

[openclaw] missing tool result in session history; inserted synthetic error result for transcript repair.

  • Parallel tool calls should return their actual child tool results, or concrete per-child timeout/error results. [openclaw] missing tool result in session history; inserted synthetic error result for transcript repair.

Root Cause

This did not appear to corrupt the session permanently, but it caused a visible reliability break: the agent looked stalled, and the user had to manually ask for status. It is especially confusing because the underlying commands may continue/complete successfully while the tool-result delivery path reports synthetic repair failures.

Code Example

[openclaw] missing tool result in session history; inserted synthetic error result for transcript repair.

---

[openclaw] missing tool result in session history; inserted synthetic error result for transcript repair.

---

multi_tool_use.parallel([
  exec(validation command A),
  exec(validation command B),
  exec(validation command C)
])
RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug (incorrect output/state without crash)

Beta release blocker

No

Summary

During a Discord-hosted agent turn on OpenClaw 2026.4.23, a multi_tool_use.parallel validation step emitted synthetic transcript-repair tool results instead of the actual child tool results:

[openclaw] missing tool result in session history; inserted synthetic error result for transcript repair.

The underlying child exec jobs either continued or completed, but the active assistant turn was interrupted/stalled until the user sent a follow-up message.

Steps to reproduce

The exact timing trigger is unknown, but the observed sequence was:

  1. Start a normal Discord channel session.
  2. Perform a multi-step tool-heavy task.
  3. Call multi_tool_use.parallel with three independent exec validations.
  4. Instead of receiving the child tool outputs, the assistant received synthetic transcript-repair results for the parallel tool calls.
  5. The user-visible turn stalled until the user asked for status.
  6. Polling/verification afterwards showed the underlying work had continued/completed.

Expected behavior

  • Parallel tool calls should return their actual child tool results, or concrete per-child timeout/error results.
  • Transcript repair should not replace successful/continuing child tool outputs with synthetic missing-result errors.
  • If repair is unavoidable, the user-facing turn should still complete with a clean fallback status instead of appearing stalled.

Actual behavior

  • The parallel tool wrapper returned synthetic repair errors for each child tool call.
  • The assistant did not complete the intended final response in that turn.
  • A user follow-up was required to recover the conversation flow.
  • Subsequent direct checks showed the underlying commands/work were not necessarily failed; the failure appeared to be in tool-result pairing/delivery rather than the child commands themselves.

OpenClaw version

2026.4.23 (a979721)

Operating system

macOS Darwin 25.2.0 arm64; Node v22.22.1

Install method

npm/global local gateway on macOS

Model

openai-codex/gpt-5.5

Provider / routing chain

Discord -> local OpenClaw gateway/runtime -> openai-codex/gpt-5.5

Logs, screenshots, and evidence

Sanitized observed tool result text:

[openclaw] missing tool result in session history; inserted synthetic error result for transcript repair.

The failed wrapper call shape was equivalent to:

multi_tool_use.parallel([
  exec(validation command A),
  exec(validation command B),
  exec(validation command C)
])

No private repository names, channel IDs, file paths, command contents, or customer data are included here. I can provide more detailed redacted local traces if useful.

Impact and severity

Severity: Medium.

This did not appear to corrupt the session permanently, but it caused a visible reliability break: the agent looked stalled, and the user had to manually ask for status. It is especially confusing because the underlying commands may continue/complete successfully while the tool-result delivery path reports synthetic repair failures.

Additional information

Related but not identical issues found before filing:

  • #15008 — closed: intermittent missing tool results in general sessions
  • #54776 — open: restart during in-flight tool calls
  • #63373 — open: internal transcript content leaked after transcript corruption/repair
  • #59060 — open: model-specific/systematic missing tool results with Kimi/EMFILE symptoms

This report is specifically for the current multi_tool_use.parallel / parallel child-tool result path on 2026.4.23 without a gateway restart as the known trigger.

extent analysis

TL;DR

The issue can be mitigated by modifying the multi_tool_use.parallel function to handle child tool results more robustly, potentially by introducing a retry mechanism or more accurate result tracking.

Guidance

  • Review the multi_tool_use.parallel implementation to ensure it correctly handles asynchronous child tool executions and their results, focusing on how it detects and reports completion or failure.
  • Investigate the use of timeouts and error handling within the exec validation commands to prevent synthetic transcript-repair results from being inserted prematurely.
  • Consider adding logging or debugging statements to track the execution and result collection of child tools within multi_tool_use.parallel to better understand the failure point.
  • Examine related issues (#15008, #54776, #63373, #59060) for potential clues on how tool results are handled in different scenarios and how transcript repair interacts with tool execution.

Example

No specific code example can be provided without the actual implementation details of multi_tool_use.parallel and exec. However, ensuring that the function waits for all child processes to complete or timeout before returning results could help mitigate the issue.

Notes

The root cause seems to be related to how multi_tool_use.parallel handles the results of its child tool executions, potentially due to incorrect assumptions about execution timing or result availability. The fact that the issue does not corrupt the session permanently but causes a visible reliability break suggests a fix might involve improving the robustness of result handling and error reporting within this function.

Recommendation

Apply a workaround by modifying the multi_tool_use.parallel function to more robustly handle child tool results, potentially including retry mechanisms for failed executions or more accurate tracking of result availability. This approach is recommended because it directly addresses the observed behavior without requiring a version upgrade or assuming the presence of specific APIs/functions not mentioned in the issue.

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

  • Parallel tool calls should return their actual child tool results, or concrete per-child timeout/error results.
  • Transcript repair should not replace successful/continuing child tool outputs with synthetic missing-result errors.
  • If repair is unavoidable, the user-facing turn should still complete with a clean fallback status instead of appearing stalled.

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]: Parallel tool results can be replaced by synthetic transcript-repair errors, stalling Discord turn [1 comments, 2 participants]