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
- 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"] }
}
- Main agent is bound to Telegram
- From the main agent, spawn the named agent: sessions_spawn(agentId: "my-worker", mode: "run", task: "...")
- Wait for the worker to complete its task
- 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 : Error: Outbound not configured for channel: telegram
[warn] Subagent announce give up (retry-limit) run= child=agent::subagent: requester=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 : Error: Outbound not configured for channel: telegram
error Subagent completion direct announce failed for run : Error: Outbound not configured for channel: telegram
[warn] Subagent announce give up (retry-limit) run= child=agent::subagent: requester=agent: retries=3 endedAgo=67s
error Subagent completion direct announce failed for run : Error: Outbound not configured for channel: telegram
error Subagent completion direct announce failed for run : Error: Outbound not configured for channel: telegram
error Subagent completion direct announce failed for run : Error: Outbound not configured for channel: telegram
[warn] Subagent announce give up (retry-limit) run= child=agent::subagent: requester=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)
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
{
"id": "my-worker",
"name": "Worker",
"workspace": "/path/to/worker",
"model": "sonnet",
"sandbox": { "mode": "off" },
"tools": { "deny": ["group:messaging", "group:automation", "group:memory", "group:nodes"] }
}
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 : Error: Outbound not configured for channel: telegram
[warn] Subagent announce give up (retry-limit) run= child=agent::subagent: requester=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 : Error: Outbound not configured for channel: telegram
error Subagent completion direct announce failed for run : Error: Outbound not configured for channel: telegram
[warn] Subagent announce give up (retry-limit) run= child=agent::subagent: requester=agent: retries=3 endedAgo=67s
error Subagent completion direct announce failed for run : Error: Outbound not configured for channel: telegram
error Subagent completion direct announce failed for run : Error: Outbound not configured for channel: telegram
error Subagent completion direct announce failed for run : Error: Outbound not configured for channel: telegram
[warn] Subagent announce give up (retry-limit) run= child=agent::subagent: requester=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)