#Approvals not popping up after upgrade to 2026.04.23

1 messages · Page 1 of 1 (latest)

haughty gust
#

I just updated to 04.24 on Ubuntu 24.04 LTS via npm, using Ollama Cloud only with gemma4.
When asking for approval it gives an option to use /approval id decision but it's not working, thinks the request is wrong in Web GUI and DIscord can't find the id, and apporval dialog windows are not poping up on Web GUI nor Discord

mellow sphinxBOT
dry kestrelBOT
#

To help others find answers, you can mark your question as solved via Right click solution message -> Apps -> âś… Mark Solution

trail sealBOT
#

A couple things jump out:

  1. The command is /approve, not /approval.
  2. 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.ownerAllowFrom uses discord:<id>
  • channels.discord.execApprovals.approvers uses raw Discord user IDs
  • default target is dm, so nothing shows in-channel unless you set channel or both
#
  • 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.

haughty gust
#

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

trail sealBOT
#

Yep, that usually means one of these:

  1. using /approval instead of /approve
  2. using a short/old id instead of the full current one
  3. 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:

haughty gust
#

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

trail sealBOT
#

That output is actually pretty telling:

  1. You’re on 2026.4.22, not 2026.4.24
  2. Config path not found just 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

  • approvers tells Discord who is allowed to approve
  • target: "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:

haughty gust
#

my mistake, it's 2026.4.22, the latest version, sorry

trail sealBOT
#

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.execApprovals just 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
haughty gust
#

It keeps telling me this:

Please approve the health‑check command:

/approve openclaw healthcheck