#Approvals not popping up after upgrade to 2026.04.23
1 messages · Page 1 of 1 (latest)
A couple things jump out:
- The command is
/approve, not/approval. - On Discord, approvals only work if OpenClaw can resolve an approver, and by default the prompt goes to DM, not the thread.
So the most likely issue is config, not Gemma/Ollama.
What to check
Please paste these:
openclaw --version
openclaw status --all
openclaw config get commands.ownerAllowFrom
openclaw config get channels.discord.execApprovals
Then reproduce once and grab the approval-related lines from:
openclaw logs --follow
Known Discord approval behavior
For Discord, one of these needs to identify you:
{
commands: {
ownerAllowFrom: ["discord:YOUR_DISCORD_USER_ID"],
},
channels: {
discord: {
execApprovals: {
enabled: "auto",
target: "both", // or "channel" if you want it in the thread
// approvers: ["YOUR_DISCORD_USER_ID"], // optional if ownerAllowFrom is set
},
},
},
}
Notes:
commands.ownerAllowFromusesdiscord:<id>channels.discord.execApprovals.approversuses raw Discord user IDs- default
targetisdm, so nothing shows in-channel unless you setchannelorboth
- if you do manual approval, use the full id and exact syntax:
/approve <id> allow-once
/approve <id> allow-always
/approve <id> deny
Why the Web UI may also show nothing
If the dashboard is not actually connected/authenticated as an approval-capable client, the request can fail fast instead of sitting pending. The log output above will tell us which path it’s taking.
Docs:
Paste those 4 outputs and I’ll help narrow it down fast.
None of this work:
/approve <id> allow-once
/approve <id> allow-always
/approve <id> deny
The Web UI thinks the id is empty when I give it to it
and discord can't find the id
Yep, that usually means one of these:
- using
/approvalinstead of/approve - using a short/old id instead of the full current one
- Discord does not see you as a valid approver
For Discord, only resolved approvers can approve. This usually fixes it:
{
commands: {
ownerAllowFrom: ["discord:793541989466636309"],
},
channels: {
discord: {
execApprovals: {
enabled: "auto",
target: "both"
// or approvers: ["793541989466636309"]
}
}
}
}
Then restart:
openclaw gateway restart
And use the exact command:
/approve FULL_ID allow-once
Not /approval, and not a shortened id unless it’s uniquely resolvable.
If you want, paste these and I’ll sanity check them:
openclaw config get commands.ownerAllowFrom
openclaw config get channels.discord.execApprovals
openclaw --version
Docs:
https://docs.openclaw.ai/channels/discord
https://docs.openclaw.ai/tools/exec-approvals
openclaw config get channels.discord.execApprovals
🦞 OpenClaw 2026.4.22 (00bd2cf) — iMessage green bubble energy, but for everyone.
Config path not found: channels.discord.execApprovals
That output is actually pretty telling:
- You’re on
2026.4.22, not2026.4.24 Config path not foundjust means that key is unset, not that Discord approvals are broken by itself
For Discord, if channels.discord.execApprovals is unset, approvals only auto-work when OpenClaw can resolve you as an approver from commands.ownerAllowFrom.
Minimal fix to try
openclaw config set commands.ownerAllowFrom '["discord:793541989466636309"]' --strict-json
openclaw config set channels.discord.execApprovals '{"enabled":"auto","approvers":["793541989466636309"],"target":"both"}' --strict-json
openclaw gateway restart
Then trigger a fresh approval and use:
/approve FULL_ID allow-once
Not /approval.
Why this likely fixes it
approverstells Discord who is allowed to approvetarget: "both"makes the prompt show in DM + channel, so it won’t silently go only to DM- without this, Discord can say the id is unknown / not usable from that surface
One more important thing
Your CLI says 4.22, so the npm update likely did not land the version you think it did. If you want, paste:
openclaw --version
which openclaw
npm ls -g openclaw --depth=0
And if approvals still don’t show after the config above, paste:
openclaw config get commands.ownerAllowFrom
openclaw config get channels.discord.execApprovals
openclaw logs --follow
Docs:
https://docs.openclaw.ai/channels/discord
https://docs.openclaw.ai/tools/exec-approvals
my mistake, it's 2026.4.22, the latest version, sorry
No worries, glad we cleared that up.
Then this probably is not a version issue, it’s an approval-routing/auth issue.
A few important bits:
- the real command is
/approve, not/approval Config path not found: channels.discord.execApprovalsjust means that key is unset- on Discord, approvals only work if OpenClaw can resolve you as an approver
- default Discord approval target is usually DM, so nothing may appear in the thread unless you set
target: "channel"or"both"
What I’d set
{
commands: {
ownerAllowFrom: ["discord:793541989466636309"],
},
channels: {
discord: {
execApprovals: {
enabled: "auto",
approvers: ["793541989466636309"],
target: "both",
},
},
},
}
Then restart:
openclaw gateway restart
And when testing, use the full id exactly as shown, including plugin: if it appears:
/approve <FULL_ID> allow-once
Please paste these next
openclaw config get commands.ownerAllowFrom
openclaw config get channels.discord.execApprovals
openclaw status --all
Then trigger one fresh approval and paste the approval-related lines from:
openclaw logs --follow
If the Web UI still shows nothing after that, it usually means the dashboard tab is not connected/authenticated as an approval-capable client.
Docs:
https://docs.openclaw.ai/channels/discord
https://docs.openclaw.ai/tools/exec-approvals
https://docs.openclaw.ai/help/faq#why-are-there-two-exec-approval-configs-for-chat-approvals
It keeps telling me this:
Please approve the health‑check command:
/approve openclaw healthcheck