#Yolo
1 messages ยท Page 1 of 1 (latest)
First check: what does openclaw --version show?
The likely gotcha: openclaw exec-policy preset yolo is local-only. It updates the machine where you ran it, but exec approvals are enforced on the actual execution host. If your commands run on the gateway host or a paired node, that host may still have stricter ~/.openclaw/exec-approvals.json settings.
Try inspecting the effective policy:
openclaw exec-policy show
openclaw approvals get --gateway
# if exec runs on a node:
openclaw approvals get --node <node-id-or-name>
For gateway-host โnever promptโ, set both layers and restart:
openclaw config set tools.exec.host gateway
openclaw config set tools.exec.security full
openclaw config set tools.exec.ask off
openclaw gateway restart
openclaw approvals set --gateway --stdin <<'EOF'
{
version: 1,
defaults: {
security: "full",
ask: "off",
askFallback: "full"
}
}
EOF
For node-host exec, use --node <id|name|ip> instead of --gateway.
Failed to parse approvals JSON: SyntaxError: JSON5: invalid end of input at 1:1
That error means the CLI received empty stdin. Usually the heredoc got pasted/executed in a way your shell didnโt pass it through.
Simplest fix: write a tiny file, then use --file:
cat > /tmp/openclaw-exec-approvals.json5 <<'EOF'
{
version: 1,
defaults: {
security: "full",
ask: "off",
askFallback: "full"
}
}
EOF
openclaw approvals set --gateway --file /tmp/openclaw-exec-approvals.json5
Then verify:
openclaw approvals get --gateway
If your exec host is a node, swap the last two commands to:
openclaw approvals set --node <node-id-or-name> --file /tmp/openclaw-exec-approvals.json5
openclaw approvals get --node <node-id-or-name>
Scope โ Requested โ Host โ Effective โ Notes โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ tools.exec โ security=full (tools. โ security=full (~/.openclaw/exec- โ security=full โ requested โ
โ โ exec.security) โ approvals.json defaults.security) โ ask=off โ security applies; โ
โ โ ask=off (tools.exec. โ ask=off (~/.openclaw/exec- โ โ requested ask โ
โ โ ask) โ approvals.json defaults.ask) โ โ applies โ
โ โ โ askFallback=full (~/.openclaw/ โ โ โ
โ โ โ exec-approvals.json defaults. โ โ โ
โ โ โ askFallback) โ โ
That table looks correct for that scope: security=full + ask=off effective means OpenClawโs exec approval gate should not prompt there.
So if youโre still seeing prompts, itโs probably one of these:
-
Different execution host โ you checked local/gateway, but the run is going to a node. Check the actual route:
openclaw config get tools.exec.host openclaw approvals get --gateway openclaw approvals get --node <node-id-or-name> -
Old running session/gateway state โ restart and start a fresh chat/session:
openclaw gateway restart -
Not OpenClaw exec approvals โ some CLI backends/tools have their own permission modes. The exact prompt text matters here. If it says
/approve ..., thatโs OpenClaw. If it says something like a Claude/Codex permission prompt, thatโs the backend layer.
Also please paste:
openclaw --version
openclaw status --all
(tokens are redacted in status output). Thatโll show whether this is gateway/node/session mismatch or a backend permission prompt.
That's odd. That's an old version. OpenClaw 2026.5.2-beta.1 (d7537e0) Let me update.
Yep, good catch โ update first. A lot changed around exec approval UX/policy since then.
After updating, restart the gateway and re-check:
openclaw gateway restart
openclaw --version
openclaw approvals get --gateway
If it still prompts after that, paste the exact approval prompt text โ thatโll tell us whether itโs OpenClawโs /approve gate or an underlying CLI backend permission prompt.
ranger-ai@claw-host:~$ sudo openclaw update
Updating OpenClaw...
Stopping managed gateway service before package update...
Stopped systemd service: openclaw-gateway.service
โ
โ โ Updating via package manager (38.59s)
โ
โ โ Running doctor checks (5.29s)
Update Result: OK
Root: /usr/lib/node_modules/openclaw
Before: 2026.5.7
After: 2026.5.7
Total time: 45.31s
Updating plugins...
npm plugins: 0 updated, 1 unchanged.
Restarting service...
Interesting โ that update log says the sudo/system install was already 2026.5.7 before and after.
Since you previously saw 2026.5.2-beta.1, this smells like a PATH / multiple installs mismatch: your normal shell is running one OpenClaw, while sudo openclaw updated another at /usr/lib/node_modules/openclaw.
Can you compare these?
which openclaw
openclaw --version
sudo which openclaw
sudo openclaw --version
openclaw gateway status
If which openclaw and sudo which openclaw differ, update/reinstall the one your gateway actually uses. openclaw gateway status should also show the service/runtime path, which is the important one.
ranger-ai@claw-host:~$ which openclaw
openclaw --version
sudo which openclaw
sudo openclaw --version
openclaw gateway status
/home/ranger-ai/.npm-global/bin/openclaw
OpenClaw 2026.5.2-beta.1 (d7537e0)
/usr/bin/openclaw
OpenClaw 2026.5.7 (eeef486)
๐ฆ OpenClaw 2026.5.2-beta.1 (d7537e0) โ I keep secrets like a vault... unless you print them in debug logs again.
โ
โ
Service: systemd (enabled)
File logs: /tmp/openclaw/openclaw-2026-05-10.log
Command: /usr/bin/node /home/ranger-ai/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18789
Service file: ~/.config/systemd/user/openclaw-gateway.service
Service env: OPENCLAW_GATEWAY_PORT=18789
Config (cli): ~/.openclaw/openclaw.json
Config (service): ~/.openclaw/openclaw.json
Gateway: bind=loopback (127.0.0.1), port=18789 (service args)
Probe target: ws://127.0.0.1:18789
Dashboard: http://127.0.0.1:18789/
Probe note: Loopback-only gateway; only local clients can connect.
Runtime: running (pid 33291, state active, sub running, last exit 0, reason 0)
Connectivity probe: ok
Capability: admin-capable
Listening: 127.0.0.1:18789
Troubles: run openclaw status
Troubleshooting: https://docs.openclaw.ai/troubleshooting
Yep, nailed it: you have two installs, and the running gateway is still using the old user install:
/home/ranger-ai/.npm-global/bin/openclaw # 2026.5.2-beta.1
/usr/bin/openclaw # 2026.5.7
Gateway command: /usr/bin/node /home/ranger-ai/.npm-global/lib/node_modules/openclaw/dist/index.js ...
So sudo openclaw update updated /usr/bin/openclaw, but your user systemd service is launching the stale ~/.npm-global copy.
Fix option A โ update the user install the gateway actually uses:
npm install -g openclaw@latest --prefix ~/.npm-global
openclaw --version
openclaw gateway restart
openclaw gateway status
Fix option B โ make the service use the system install instead: uninstall/reinstall the user gateway service using the newer binary:
/usr/bin/openclaw gateway uninstall
/usr/bin/openclaw gateway install --force
/usr/bin/openclaw gateway restart
openclaw gateway status
Iโd do option A first because it matches your current service path and is less likely to disturb config. Afterward, openclaw gateway status should no longer show 2026.5.2-beta.1.
The version is correct but it is still asking for approvals
Okay โ if the gateway version is now correct and approvals get says effective security=full ask=off, then I want to separate two cases:
A) OpenClaw exec approval โ the message says /approve <id> ... or shows an OpenClaw approval card.
B) Backend permission prompt โ Claude/Codex/another CLI is asking for permission inside its own process. That is separate from OpenClaw exec approvals.
Please paste the exact approval prompt text/screenshot if you can. Also run these and paste the output:
openclaw --version
openclaw gateway status
openclaw approvals get --gateway
openclaw config get tools.exec.host
openclaw config get tools.exec.security
openclaw config get tools.exec.ask
openclaw config get agents.defaults.cliBackends
One quick thing to try in the current chat/session too:
/exec host=gateway security=full ask=off
If that stops it, the persistent config is fine but the active session had stricter exec settings cached.
OpenClaw 2026.5.7 (eeef486)
Config warnings:
- plugins.entries.discord: plugin not installed: discord โ install the official external plugin with: openclaw plugins install @openclaw/discord
- plugins.allow: plugin not installed: discord โ install the official external plugin with: openclaw plugins install @openclaw/discord
๐ฆ OpenClaw 2026.5.7 (eeef486) โ Give me a workspace and I'll give you fewer tabs, fewer toggles, and more oxygen.
โ
โ
Service: systemd user (enabled)
File logs: /tmp/openclaw/openclaw-2026-05-10.log
Command: /usr/bin/node /home/ranger-ai/.npm-global/lib/node_modules/openclaw/dist/index.js gateway --port 18789
Service file: ~/.config/systemd/user/openclaw-gateway.service
Service env: OPENCLAW_GATEWAY_PORT=18789
Config (cli): ~/.openclaw/openclaw.json
Config (service): ~/.openclaw/openclaw.json
Gateway: bind=loopback (127.0.0.1), port=18789 (service args)
Probe target: ws://127.0.0.1:18789
Dashboard: http://127.0.0.1:18789/
Probe note: Loopback-only gateway; only local clients can connect.
Runtime: running (pid 35748, state active, sub running, last exit 0, reason 0)
Connectivity probe: ok
Capability: admin-capable
Listening: 127.0.0.1:18789
Troubles: run openclaw status
Troubleshooting: https://docs.openclaw.ai/troubleshooting
Config warnings:
- plugins.entries.discord: plugin not installed: discord โ install the official external plugin with: openclaw plugins install @openclaw/discord
- plugins.allow: plugin not installed: discord โ install the official external plugin with: openclaw plugins install @openclaw/discord
Version is fixed now โ
This output doesnโt include the key bits yet though โ it only shows the gateway is running 2026.5.7. Please run these exact commands too:
openclaw approvals get --gateway
openclaw config get tools.exec.host
openclaw config get tools.exec.security
openclaw config get tools.exec.ask
openclaw config get agents.defaults.cliBackends
And most importantly: paste the exact approval prompt text youโre seeing.
If the prompt contains /approve <id>, itโs OpenClaw exec approvals and weโll chase policy/session/host routing.
If itโs a terminal-style prompt from Claude/Codex/etc, then OpenClaw exec policy is already bypassed and the remaining approval is coming from the CLI backendโs own permission mode. Different fix.
๐ฆ OpenClaw 2026.5.7 (eeef486) โ It's not "failing," it's "discovering new ways to configure the same thing wrong."
โ
โ Config warnings โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ - plugins.entries.discord: plugin not installed: discord โ install the official external โ
โ plugin with: openclaw plugins install @openclaw/discord โ
โ - plugins.allow: plugin not installed: discord โ install the official external plugin โ
โ with: openclaw plugins install @openclaw/discord โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ
โ
โ
Approvals
โโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Field โ Value โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Target โ gateway โ
โ Path โ ~/.openclaw/exec-approvals.json โ
โ Exists โ yes โ
โ Hash โ 033dbc806f5d6605ab9566f098a3195fb6a0e5ae2b1f2877b54e5a91e57ed113 โ
โ Version โ 1 โ
โ Socket โ ~/.openclaw/exec-approvals.sock โ
โ Defaults โ security=full, ask=off, askFallback=full โ
โ Agents โ 1 โ
โ Allowlist โ 2 โ
โโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
That looks like the CLI header/warnings, but not the actual outputs from the config commands โ maybe the command is hanging or the output got cut off after the warnings.
Run them one at a time with --json where possible:
openclaw approvals get --gateway --json
openclaw config get tools.exec.host --json
openclaw config get tools.exec.security --json
openclaw config get tools.exec.ask --json
openclaw config get agents.defaults.cliBackends --json
Also: those Discord plugin warnings are unrelated to exec approvals, just noisy config warnings.
The missing clue is still the actual approval prompt. Please paste the message/card that asks for approval โ especially whether it includes /approve <id> or if itโs a Claude/Codex terminal prompt.
Effective Policy
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโ
โ Scope โ Requested โ Host โ Effective โ Notes โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ tools.exec โ security=full (tools. โ security=full (~/.openclaw/exec- โ security=full โ requested โ
โ โ exec.security) โ approvals.json defaults.security) โ ask=off โ security applies; โ
โ โ ask=off (tools.exec. โ ask=off (~/.openclaw/exec- โ โ requested ask โ
โ โ ask) โ approvals.json defaults.ask) โ โ applies โ
โ โ โ askFallback=full (~/.openclaw/ โ โ โ
โ โ โ exec-approvals.json defaults. โ โ โ
โ โ โ askFallback) โ โ โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโ
Aha โ Defaults are YOLO, but this line matters:
Agents 1
Allowlist 2
That means you still have an agent-specific approvals section in ~/.openclaw/exec-approvals.json. If that agent section says ask=always or security=allowlist, it can override the defaults and keep prompting.
Since you want full YOLO, the clean reset is to replace the approvals file with defaults only:
cat > /tmp/openclaw-exec-approvals.json5 <<'EOF'
{
version: 1,
defaults: {
security: "full",
ask: "off",
askFallback: "full"
},
agents: {}
}
EOF
openclaw approvals set --gateway --file /tmp/openclaw-exec-approvals.json5
openclaw gateway restart
openclaw approvals get --gateway
After that, Agents should be 0.
If it still asks after Agents 0, then itโs almost certainly not OpenClaw exec approvals โ itโs a backend/tool prompt. In that case paste the exact prompt text and weโll chase that layer.
That effective policy confirms OpenClaw exec approvals are off for gateway exec:
Effective: security=full, ask=off
So if youโre still being asked, itโs almost certainly not this exec approval layer.
Next thing I need is the exact prompt/card. Please paste the text of the thing asking for permission.
Quick distinction:
- If it says
/approve <id>or โExec approvalโ โ OpenClaw approval forwarding/session mismatch. - If itโs inside a coding agent/CLI and says approve command, allow command, sandbox, permission mode, etc. โ thatโs the backendโs own permission system, not
openclaw approvals.
Also check current session overrides by sending this in the same chat where it prompts:
/status
and try once:
/exec host=gateway security=full ask=off
/elevated full
If /elevated full stops the prompt, weโre still dealing with OpenClaw session/tool policy. If it doesnโt, itโs backend-level.
Effective Policy
โโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโ
โ Scope โ Requested โ Host โ Effective โ Notes โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโค
โ tools.exec โ security=full (tools. โ security=full (~/.openclaw/exec- โ security=full โ requested โ
โ โ exec.security) โ approvals.json defaults.security) โ ask=off โ security applies; โ
โ โ ask=off (tools.exec. โ ask=off (~/.openclaw/exec- โ โ requested ask โ
โ โ ask) โ approvals.json defaults.ask) โ โ applies โ
โ โ โ askFallback=full (~/.openclaw/ โ โ โ
โ โ โ exec-approvals.json defaults. โ โ โ
โ โ โ askFallback) โ โ โ
โโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโ
Yep โ that table is the important confirmation: gateway exec policy is YOLO now.
At this point Iโm blocked without seeing the actual approval request. The policy table isnโt the prompt; it only proves the gateway exec approval layer should not be prompting.
Please paste/screenshot the message that asks for permission. Specifically, does it include something like:
/approve <id> allow-once
If yes, itโs still OpenClaw approval forwarding/session/host routing. If no, itโs likely the underlying CLI backendโs own approval system.
One useful command to run in the same chat/session that prompts:
/status
And one test:
/elevated full
If /elevated full stops it, weโre still in OpenClaw policy land. If it doesnโt, weโre chasing a backend permission prompt.
Approvals
โโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Field โ Value โ
โโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ Target โ gateway โ
โ Path โ ~/.openclaw/exec-approvals.json โ
โ Exists โ yes โ
โ Hash โ de11d0c3312bb7275cea21023e2fc150368ce2abcee39c9157d46ea88b66731a โ
โ Version โ 1 โ
โ Socket โ ~/.openclaw/exec-approvals.sock โ
โ Defaults โ security=full, ask=off, askFallback=full โ
โ Agents โ 0 โ
โ Allowlist โ 0 โ
โโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Perfect โ gateway approvals are now fully clean:
Defaults: security=full, ask=off, askFallback=full
Agents: 0
Allowlist: 0
So the host approval file is not the thing prompting anymore.
Do these two final checks:
- In the same chat/session where it prompts, send:
/exec host=gateway security=full ask=off
Then try the command again.
- If it still asks, paste the actual approval request text/card. Not the policy table โ the message that asks you to approve. The wording will tell us which layer it is.
If it contains /approve <id>, weโll look for session/approval-forwarding weirdness. If itโs a Claude/Codex-style terminal permission prompt, thatโs a separate backend permission mode and openclaw approvals wonโt affect it.
not dead, just briefly trapped in the approval-policy lobster maze ๐ฆ
Good news: your latest output shows gateway exec approvals are actually off now (Agents 0, ask=off). If you still see a permission prompt, paste the actual prompt text/card next โ thatโll tell us whether itโs OpenClaw /approve forwarding or a separate Claude/Codex backend permission prompt.
That confirms it is an OpenClaw /approve prompt โ but one important wrinkle: that approval id may be an old pending request created before you fixed the policy. Changing ask=off wonโt retroactively cancel already-created approval requests.
Do this:
openclaw gateway restart
Then start a fresh/new request and see if it creates a new /approve <id>.
If it does, grab the surrounding log line for the new id:
grep -R "6eecf3c1" /tmp/openclaw ~/.openclaw/logs 2>/dev/null | tail -20
Replace 6eecf3c1 with the new id if it changes.
Also: if the approval message says anything about a plugin/action rather than exec, it may be a plugin approval, not exec approvals. /approve is shared for both, so the prompt text matters.
โ Failed to submit approval: unknown or expired approval id
Thatโs actually a good sign: unknown or expired approval id means 6eecf3c1 is stale โ not an active approval anymore.
So now the real test is: after the restart + cleaned policy, does a new request produce a new /approve <id>?
Please try a fresh simple exec request, like asking OpenClaw:
run pwd
If no approval appears: fixed โ
If a new /approve ... appears, paste the full approval message/card text. At that point itโs either:
- a non-gateway target, like node exec, or
- a plugin approval using the same
/approvecommand path, not exec approvals.
That was after I made up a code like you asked
Ah โ my bad, I misunderstood. Thanks for catching that.
If you invented 6eecf3c1, then the โunknown/expiredโ result doesnโt tell us anything except that made-up IDs are rejected.
Current known state:
- Gateway version is current โ
- Gateway exec approvals file is YOLO โ
- Effective gateway policy is
security=full ask=offโ
So the next useful step is only this: trigger the thing that asks for approval again, then paste the real full approval message it sends. Donโt invent an id โ I need the actual text/card so we can tell whether itโs exec, plugin, node-host, or backend permissions.
If you want a clean test, ask OpenClaw in that same session:
run pwd
If that prompts, paste that exact prompt.
ranger-ai@claw-host:~$ grep -R "6eecf3c1" /tmp/openclaw ~/.openclaw/logs 2>/dev/null | tail -20
/tmp/openclaw/openclaw-2026-05-10.log:{"0":"exec approval followup dispatch failed (id=6eecf3c1-6b21-456b-828e-57b2ec8de6b8): Session followup failed: gateway closed (1006 abnormal closure (no close frame)): no close reason\nGateway target: ws://127.0.0.1:18789\nSource: local loopback\nConfig: /home/ranger-ai/.openclaw/openclaw.json\nBind: loopback\n\nPossible causes:\n- Gateway not yet ready to accept connections (retry after a moment)\n- TLS mismatch (connecting with ws:// to a wss:// gateway, or vice versa)\n- Gateway crashed or was terminated unexpectedly\nRun openclaw doctor for diagnostics.","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-05-10T14:58:14.423Z","logLevelId":4,"logLevelName":"WARN","path":{"fullFilePath":"file:///home/ranger-ai/.npm-global/lib/node_modules/openclaw/dist/logger-DksTYIAF.js:23:34","fileName":"logger-DksTYIAF.js","fileNameWithLine":"logger-DksTYIAF.js:23","fileColumn":"34","fileLine":"23","filePath":".npm-global/lib/node_modules/openclaw/dist/logger-DksTYIAF.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/logger-DksTYIAF.js:23","method":"logWithSubsystem"}},"time":"2026-05-10T14:58:14.424+00:00","hostname":"claw-host","message":"exec approval followup dispatch failed (id=6eecf3c1-6b21-456b-828e-57b2ec8de6b8): Session followup failed: gateway closed (1006 abnormal closure (no close frame)): no close reason\nGateway target: ws://127.0.0.1:18789\nSource: local loopback\nConfig: /home/ranger-ai/.openclaw/openclaw.json\nBind: loopback\n\nPossible causes:\n- Gateway not yet ready to accept connections (retry after a moment)\n- TLS mismatch (connecting with ws:// to a wss:// gateway, or vice versa)\n- Gateway crashed or was terminated unexpectedly\nRun openclaw doctor for diagnostics.","traceId":"326c398a682f9b7866b29b5985529ec5","spanId":"82051b7c280f2f82
Okay, that was a real id โ sorry for the confusion. The log says the approval finished, but OpenClaw failed to deliver the follow-up because the gateway connection closed:
exec approval followup dispatch failed ... gateway closed (1006 abnormal closure)
That doesnโt prove approvals are still enabled now; it proves there was an approval request around 14:58, likely before/during the update/restart/config cleanup.
Next best check: trigger a fresh request now and see if a new approval id is created. If yes, grab the surrounding logs for that new id plus creation context:
grep -R "exec approval" /tmp/openclaw ~/.openclaw/logs 2>/dev/null | tail -80
Also run doctor since the gateway had an abnormal close:
openclaw doctor
If a fresh run pwd no longer asks, youโre fixed and that old log was just stale fallout from the restart/update.
Solved
Nice, glad itโs sorted ๐
If this fixed it, please right-click the solution message โ Apps โ โ Mark Solution so Answer Overflow indexes it for the next person who hits the same approvals maze.