openclaw - ✅(Solved) Fix BUG: Subagent completion announce fails with "Outbound not configured for channel" for named agents without channel bindings [2 pull requests, 2 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

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#55437Fetched 2026-04-08 01:39:30
View on GitHub
Comments
2
Participants
2
Timeline
9
Reactions
0
Author
Timeline (top)
commented ×2cross-referenced ×2labeled ×2closed ×1

After upgrading from v2026.3.11 to v2026.3.24, subagent completion announces fail with Error: Outbound not configured for channel: telegram when the child agent is a named agent configured without channel bindings. The announce mechanism appears to resolve outbound through the child agent's channel config instead of the requester's. Zero announce failures on v2026.3.11 across 5+ days. 80+ failures across 2 days on v2026.3.24.

Error Message

After upgrading from v2026.3.11 to v2026.3.24, subagent completion announces fail with Error: Outbound not configured for channel: telegram when the child agent is a named agent configured without channel bindings. The announce mechanism appears to resolve outbound through the child agent's channel config instead of the requester's. Zero announce failures on v2026.3.11 across 5+ days. 80+ failures across 2 days on v2026.3.24. Subagent completion direct announce failed for run <runId>: Error: Outbound not configured for channel: telegram [warn] Subagent announce give up (retry-limit) run=<runId> child=agent:<named-agent>:subagent:<uuid> requester=agent:<main-agent> retries=3 error Subagent completion direct announce failed for run <runId-1>: Error: Outbound not configured for channel: telegram error Subagent completion direct announce failed for run <runId-1>: Error: Outbound not configured for channel: telegram [warn] Subagent announce give up (retry-limit) run=<runId-1> child=agent:<named-agent>:subagent:<uuid-1> requester=agent:<main-agent> retries=3 endedAgo=67s error Subagent completion direct announce failed for run <runId-2>: Error: Outbound not configured for channel: telegram error Subagent completion direct announce failed for run <runId-2>: Error: Outbound not configured for channel: telegram error Subagent completion direct announce failed for run <runId-2>: Error: Outbound not configured for channel: telegram [warn] Subagent announce give up (retry-limit) run=<runId-2> child=agent:<named-agent>:subagent:<uuid-2> requester=agent:<main-agent> retries=3 endedAgo=29s • Every failure: identical error "Outbound not configured for channel: telegram"

Root Cause

After upgrading from v2026.3.11 to v2026.3.24, subagent completion announces fail with Error: Outbound not configured for channel: telegram when the child agent is a named agent configured without channel bindings. The announce mechanism appears to resolve outbound through the child agent's channel config instead of the requester's. Zero announce failures on v2026.3.11 across 5+ days. 80+ failures across 2 days on v2026.3.24.

Fix Action

Fix / Workaround

Workaround: None confirmed. Manual gateway restart clears blocked deliveries. Completion results arrive via webchat fallback but the stalled pipeline causes lost inbound messages.

PR fix notes

PR #55469: fix(agents): anchor subagent announce to requester session key (#55437)

Description (problem / solution / changelog)

Summary

Subagent completion announce fails with "Outbound not configured for channel: telegram" when the child agent is a named agent without channel bindings. This is a regression from v2026.3.11 → v2026.3.24.

Root Cause

The announce mechanism resolved outbound delivery through the child agent's channel config instead of the requester's. Named worker agents without channel bindings caused the resolve to fail because there was no Telegram outbound configured on the child.

Changes

  • src/agents/subagent-spawn.ts: Added canonicalizeRequesterSessionKey() to convert non-canonical requester keys (main, bare keys) into explicit agent:<requesterAgentId>:... keys. This ensures announce follow-up routing stays tied to the requester's session/agent context, so completion delivery uses the requester's channel configuration.

Test

  • LSP diagnostics clean
  • pnpm test -- src/agents/openclaw-tools.subagents.sessions-spawn.lifecycle.test.ts passed
  • pnpm test -- src/agents/subagent-announce.format.e2e.test.ts passed

Closes #55437

Changed files

  • src/agents/subagent-spawn.ts (modified, +35/-14)

PR #55998: fix(subagents): preserve requester agent for inline announces

Description (problem / solution / changelog)

Summary

  • preserve requesterAgentIdOverride when inline deterministic tool actions create OpenClaw tools
  • cover the named-agent spawn path with a regression test
  • add unreleased changelog credit for the original reporter and maintainer follow-up

Validation

  • pnpm test -- src/auto-reply/reply/get-reply-inline-actions.skip-when-config-empty.test.ts
  • pnpm build

Fixes #55437

Changed files

  • CHANGELOG.md (modified, +1/-0)
  • src/auto-reply/reply/get-reply-inline-actions.skip-when-config-empty.test.ts (modified, +65/-0)
  • src/auto-reply/reply/get-reply-inline-actions.ts (modified, +1/-0)
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

After upgrading from v2026.3.11 to v2026.3.24, subagent completion announces fail with Error: Outbound not configured for channel: telegram when the child agent is a named agent configured without channel bindings. The announce mechanism appears to resolve outbound through the child agent's channel config instead of the requester's. Zero announce failures on v2026.3.11 across 5+ days. 80+ failures across 2 days on v2026.3.24.

Steps to reproduce

  1. Configure a multi-agent setup with a named agent that has NO channel bindings:

{ "id": "my-worker", "name": "Worker", "workspace": "/path/to/worker", "model": "sonnet", "sandbox": { "mode": "off" }, "tools": { "deny": ["group:messaging", "group:automation", "group:memory", "group:nodes"] } }

  1. Main agent is bound to Telegram
  2. From the main agent, spawn the named agent: sessions_spawn(agentId: "my-worker", mode: "run", task: "...")
  3. Wait for the worker to complete its task
  4. Completion announce fails 3x and gives up

Expected behavior

Completion event announced back to the requester's session via the requester's channel (Telegram). The child agent should not need channel bindings — it's a headless worker that reports back to its parent.

Actual behavior

Announce fails with:

Subagent completion direct announce failed for run <runId>: Error: Outbound not configured for channel: telegram [warn] Subagent announce give up (retry-limit) run=<runId> child=agent:<named-agent>:subagent:<uuid> requester=agent:<main-agent> retries=3

During the retry window, inbound Telegram messages queue up and are not processed. Multiple pending deliveries recovered after manual gateway restart.

OpenClaw version

2026.3.24 (regression from 2026.3.11)

Operating system

Ubuntu 24.04 LTS (Linux 6.18.7 x64)

Install method

npm global

Model

anthropic/claude-sonnet-4-6 (child agent) / anthropic/claude-opus-4-6 (requester)

Provider / routing chain

openclaw -> anthropic (direct)

Additional provider/model setup details

Bug is in subagent announce routing, not model-specific. OAuth token auth (Claude Max subscription).

Logs, screenshots, and evidence

Gateway logs (UTC):

error Subagent completion direct announce failed for run <runId-1>: Error: Outbound not configured for channel: telegram error Subagent completion direct announce failed for run <runId-1>: Error: Outbound not configured for channel: telegram [warn] Subagent announce give up (retry-limit) run=<runId-1> child=agent:<named-agent>:subagent:<uuid-1> requester=agent:<main-agent> retries=3 endedAgo=67s

error Subagent completion direct announce failed for run <runId-2>: Error: Outbound not configured for channel: telegram error Subagent completion direct announce failed for run <runId-2>: Error: Outbound not configured for channel: telegram error Subagent completion direct announce failed for run <runId-2>: Error: Outbound not configured for channel: telegram [warn] Subagent announce give up (retry-limit) run=<runId-2> child=agent:<named-agent>:subagent:<uuid-2> requester=agent:<main-agent> retries=3 endedAgo=29s

Regression data: • Before update (v2026.3.11): 0 announce failures across 5+ days • After update to v2026.3.24: 31 failures in first day • Following day (v2026.3.24): 49 failures • Every failure: identical error "Outbound not configured for channel: telegram"

Impact and severity

High — Message delivery pipeline stalls during announce retries. Inbound Telegram messages queue up and are not delivered to the agent until retries exhaust (3 attempts) or gateway is manually restarted. Completion results eventually arrive through a webchat fallback path, but with significant delay. Affects any multi-agent setup where specialized agents are configured without channel bindings — the documented pattern for headless background agents.

Additional information

The subagent docs state: "On completion, the sub-agent announces a summary/result message back to the requester chat channel." On v2026.3.11, this correctly routed through the requester's channel. On v2026.3.24, the announce appears to resolve outbound through the child agent's channel configuration, which doesn't exist for headless named agents.

Workaround: None confirmed. Manual gateway restart clears blocked deliveries. Completion results arrive via webchat fallback but the stalled pipeline causes lost inbound messages.

Related: #54931 (Discord health-monitor crash — another v2026.3.24 delivery regression), #54936 (runTimeoutSeconds bypass — config default not applied)

extent analysis

Fix Plan

To resolve the issue with subagent completion announces failing due to "Outbound not configured for channel: telegram", we need to modify the announce mechanism to use the requester's channel configuration instead of the child agent's.

Here are the steps:

  • Update the subagent.js file to use the requester's channel configuration for announces.
  • Add a check to ensure the requester's agent has a channel binding before attempting to announce.
  • Modify the announce function to use the requester's channel configuration.

Example code changes:

// In subagent.js
const announce = async (runId, result) => {
  const requesterAgent = await getRequesterAgent(runId);
  const requesterChannel = requesterAgent.getChannel(); // Get the requester's channel

  if (!requesterChannel) {
    throw new Error(`Requester agent has no channel binding`);
  }

  // Use the requester's channel to announce the result
  await requesterChannel.announce(result);
};

Verification

To verify the fix, follow these steps:

  • Deploy the updated subagent.js file to your production environment.
  • Test the subagent completion announce by spawning a named agent and waiting for it to complete its task.
  • Check the gateway logs for any errors related to "Outbound not configured for channel: telegram".
  • Verify that the completion event is announced correctly to the requester's chat channel.

Extra Tips

  • Ensure that the requester's agent has a valid channel binding configured.
  • Test the fix with different types of channels (e.g., Telegram, webchat) to ensure compatibility.
  • Monitor the gateway logs for any errors or warnings related to subagent announces.

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

Completion event announced back to the requester's session via the requester's channel (Telegram). The child agent should not need channel bindings — it's a headless worker that reports back to its parent.

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 - ✅(Solved) Fix BUG: Subagent completion announce fails with "Outbound not configured for channel" for named agents without channel bindings [2 pull requests, 2 comments, 2 participants]