-
-
Notifications
You must be signed in to change notification settings - Fork 69.4k
Discord ack reactions not firing (ackReaction config ignored) #28268
Copy link
Copy link
Closed
Description
Bug Description
Discord ack reactions (ackReaction) are configured but never sent. No reaction appears on inbound messages, and no log entry is emitted (not even an error).
Environment
- OpenClaw version: 2026.2.26
- OS: Linux 6.8.0-101-generic (x64)
- Node: v22.22.0
- Channel: Discord (multi-account setup with 5 bot accounts)
Configuration
ackReaction is set at all resolution levels:
{
"messages": {
"ackReaction": "👀",
"ackReactionScope": "all"
},
"channels": {
"discord": {
"accounts": {
"deelia": { "ackReaction": "👀" },
"div": { "ackReaction": "👀" },
"chief": { "ackReaction": "👀" },
"einstein": { "ackReaction": "👀" },
"gabibou": { "ackReaction": "👀" }
}
}
}
}What works
- Discord bot has Add Reactions permission (confirmed in Discord Developer Portal)
- Manual reactions via
message(action="react")tool work perfectly - Config is validated and shows no issues (
config.getconfirms all values) - Hot reload logs confirm the ackReaction config was applied
What does not work
- No 👀 reaction appears on any inbound Discord DM
- No log entries related to ack reaction attempts or failures (grep for "react", "ack" returns nothing relevant)
- Full gateway restart (
openclaw gateway restart) did not fix it - SIGUSR1 restart did not fix it
Steps to Reproduce
- Set
messages.ackReactionto"👀"andmessages.ackReactionScopeto"all" - Set
channels.discord.accounts.<id>.ackReactionto"👀"for each account - Restart gateway
- Send a DM to the Discord bot
- Expected: 👀 reaction appears on the message while processing
- Actual: No reaction, no log output
Code Analysis
Traced through the minified source. The pipeline looks correct:
resolveAckReaction()should return"👀"(account-level config present)shouldAckReaction()withscope: "all"returnstruecreateStatusReactionController()should be enabledsetQueued()is called which enqueuesapplyEmoji("👀")reactMessageDiscord()calls Discord REST API
Yet nothing fires. The onError handler uses logVerbose which should still write to log files. The complete absence of any log suggests the code path is never reached, possibly a stale config reference in the Discord message handler instance.
Workaround
None found. Manual reactions via the message tool work as expected.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Fields
Give feedbackNo fields configured for issues without a type.