openclaw - 💡(How to fix) Fix OpenClaw: `sessions_spawn` parameter `streamTo: "parent"` is intermittently rewritten by an internal redaction layer

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…

When the main agent calls sessions_spawn({ ..., streamTo: "parent" }), the literal string "parent" is sometimes rewritten to a placeholder value (e.g. "__OPENCLAW_REDACTED__") by an internal redaction layer before the call reaches schema validation. The tool then rejects with streamTo: must be equal to one of the allowed values, even though the agent passed the legal value.

When this happens the agent must omit streamTo entirely to make the spawn succeed — but that means the spawn returns no streamLogPath, and no live-watch terminal can be opened.

Root Cause

When the main agent calls sessions_spawn({ ..., streamTo: "parent" }), the literal string "parent" is sometimes rewritten to a placeholder value (e.g. "__OPENCLAW_REDACTED__") by an internal redaction layer before the call reaches schema validation. The tool then rejects with streamTo: must be equal to one of the allowed values, even though the agent passed the legal value.

When this happens the agent must omit streamTo entirely to make the spawn succeed — but that means the spawn returns no streamLogPath, and no live-watch terminal can be opened.

Fix Action

Workaround

Omit streamTo on rewrite. Loses live-streaming-to-parent — caller has to fall back to acp-watch --latest and hope the right log was created.

RAW_BUFFERClick to expand / collapse

Repo: openclaw/openclaw Component: main session / tool argument plumbing (not yet localised to a specific module — needs investigation) Found: 2026-05-12 while wiring an acp-watch live observability window for ACP-harness spawns.

Summary

When the main agent calls sessions_spawn({ ..., streamTo: "parent" }), the literal string "parent" is sometimes rewritten to a placeholder value (e.g. "__OPENCLAW_REDACTED__") by an internal redaction layer before the call reaches schema validation. The tool then rejects with streamTo: must be equal to one of the allowed values, even though the agent passed the legal value.

When this happens the agent must omit streamTo entirely to make the spawn succeed — but that means the spawn returns no streamLogPath, and no live-watch terminal can be opened.

Reproduction

Repeated sessions_spawn calls with runtime: "acp", agentId: "claude", streamTo: "parent". Around 2-3 attempts in 10 today were rewritten to "__OPENCLAW_REDACTED__". The trigger seems context-dependent (something in the surrounding prompt activates the redaction).

Suggested fix

Whatever pattern is matching "parent" and rewriting it to a redaction placeholder is too aggressive. Either:

  1. Make the redaction layer aware of tool-argument schemas — known-legal values for streamTo should never be rewritten.
  2. Apply the redaction strictly to user-visible content paths (chat surfaces) and not to tool-call argument plumbing.

Workaround

Omit streamTo on rewrite. Loses live-streaming-to-parent — caller has to fall back to acp-watch --latest and hope the right log was created.

Environment

  • OpenClaw 2026.5.7
  • macOS 15 (arm64), Node 24.15.0
  • main agent on Telegram channel
  • target: runtime: "acp", agentId: "claude" (@openclaw/acpx)

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

openclaw - 💡(How to fix) Fix OpenClaw: `sessions_spawn` parameter `streamTo: "parent"` is intermittently rewritten by an internal redaction layer