Bug Description
When using multiple Discord bot accounts, session delivery does not respect the accountId in the bound deliveryContext. All responses are posted through the default account instead of the agent's configured account.
Steps to Reproduce
- Configure multiple Discord accounts in
channels.discord.accounts (e.g., kirk, dex, etc.)
- Set up bindings to route different agents to different accounts:
{"agentId": "kirk", "match": {"channel": "discord", "accountId": "kirk"}}
- Have agent respond in a Discord channel via
[[reply_to_current]] or normal text response
- Observe that the message is posted by the
default account (e.g., Frank#4147) instead of the bound account (e.g., Kirk#2166)
Expected Behavior
Session responses should be delivered through the accountId specified in the session's deliveryContext.
Actual Behavior
All session responses go through the default Discord account, regardless of deliveryContext.accountId.
Workaround
Agents must explicitly use the message tool with accountId parameter:
message(action="send", channel="discord", accountId="kirk", to="CHANNEL_ID", message="...")
Environment
- OpenClaw version: 2026.2.12
- Multiple Discord accounts: 10 configured
- Bindings: Correctly set up per account
Evidence
- Explicit
message(accountId="kirk") posts as Kirk#2166 ✅
- Session reply via
[[reply_to_current]] posts as Frank#4147 ❌
- Session
deliveryContext shows accountId: "kirk" but delivery uses default
Bug Description
When using multiple Discord bot accounts, session delivery does not respect the
accountIdin the bounddeliveryContext. All responses are posted through thedefaultaccount instead of the agent's configured account.Steps to Reproduce
channels.discord.accounts(e.g.,kirk,dex, etc.){"agentId": "kirk", "match": {"channel": "discord", "accountId": "kirk"}}[[reply_to_current]]or normal text responsedefaultaccount (e.g., Frank#4147) instead of the bound account (e.g., Kirk#2166)Expected Behavior
Session responses should be delivered through the
accountIdspecified in the session'sdeliveryContext.Actual Behavior
All session responses go through the
defaultDiscord account, regardless ofdeliveryContext.accountId.Workaround
Agents must explicitly use the
messagetool withaccountIdparameter:Environment
Evidence
message(accountId="kirk")posts as Kirk#2166 ✅[[reply_to_current]]posts as Frank#4147 ❌deliveryContextshowsaccountId: "kirk"but delivery usesdefault