Bug Description
After upgrading to 2026.3.23-2, an ACP binding to a Telegram group topic only handles the first incoming message correctly via the ACP backend (Claude/Codex). On the second message, the binding falls back to the main agent instead of continuing via ACP.
Environment
- OpenClaw version: 2026.3.23-2 (7ffe7e4)
- Plugin: ACPX Runtime 2026.3.23 (loaded, no errors)
- Channel: Telegram
- Platform: macOS
Configuration
{
"type": "acp",
"agentId": "tradingdev",
"match": {
"channel": "telegram",
"accountId": "default",
"peer": {
"kind": "group",
"id": "-100XXXXXXXXXX:topic:66"
}
},
"acp": {
"cwd": "[REDACTED]/TradingAgents"
}
}
There is also a route binding for topic:1 in the same group pointing to the main agent, and a route binding for DM.
Reproduction Steps
- Configure an ACP binding for a Telegram group topic (e.g.
topic:66)
- Send the first message to that topic → routes correctly to ACP backend, Claude Code responds ✅
- Send the second message to the same topic → falls back to main agent (route binding for
topic:1) ❌
- Delete the stuck ACP session from
agents/<agentId>/sessions/sessions.json
- Restart gateway with
openclaw gateway restart
- Send a new message → same pattern: first ✅ ACP, second ❌ fallback
Expected Behavior
All messages to the ACP-bound topic should consistently route through the ACP backend.
Attempted Fixes
- Session cleanup: Deleted the stuck ACP session from
sessions.json and restarted gateway — does not fix the issue
openclaw doctor --fix: Ran this command, which improved the first message routing (now correctly ACP on first attempt), but the second message still falls back to main
- Extension re-check: ACPX plugin is loaded and shows no errors
Notes
- ACP session identity resolves correctly (
identity.state: \"resolved\") after the first message
- The fallback goes to
topic:1 route binding, which suggests the ACP session may be getting marked as expired/idle after the first message, causing subsequent messages to be re-routed
- This started after upgrading to 2026.3.23-2 (was working fine on previous version)
Bug Description
After upgrading to 2026.3.23-2, an ACP binding to a Telegram group topic only handles the first incoming message correctly via the ACP backend (Claude/Codex). On the second message, the binding falls back to the main agent instead of continuing via ACP.
Environment
Configuration
{ "type": "acp", "agentId": "tradingdev", "match": { "channel": "telegram", "accountId": "default", "peer": { "kind": "group", "id": "-100XXXXXXXXXX:topic:66" } }, "acp": { "cwd": "[REDACTED]/TradingAgents" } }There is also a
routebinding fortopic:1in the same group pointing to the main agent, and aroutebinding for DM.Reproduction Steps
topic:66)topic:1) ❌agents/<agentId>/sessions/sessions.jsonopenclaw gateway restartExpected Behavior
All messages to the ACP-bound topic should consistently route through the ACP backend.
Attempted Fixes
sessions.jsonand restarted gateway — does not fix the issueopenclaw doctor --fix: Ran this command, which improved the first message routing (now correctly ACP on first attempt), but the second message still falls back to mainNotes
identity.state: \"resolved\") after the first messagetopic:1route binding, which suggests the ACP session may be getting marked as expired/idle after the first message, causing subsequent messages to be re-routed