I’m seeing a reproducible approval-flow issue in the webchat control UI (openclaw-control-ui).
Environment
- OpenClaw:
2026.3.24 (cff6dc9)
- Latest npm version checked:
2026.3.24
- Surface/provider:
webchat
- Sender label:
openclaw-control-ui
- Session type: direct chat / main session
Problem
When an exec call requires approval, clicking Approve in the control UI does not reliably consume the pending approval request. Re-running the same command then produces a new approval id instead of executing the previously approved request.
Minimal reproduction
- Trigger a minimal
exec request from the webchat control UI with:
- command:
ask: "always"
- no
elevated
- The system returns an approval request, for example:
- short id:
c43e0bd0
- full id:
c43e0bd0-cd85-4381-bd17-0488d7650311
- Click Approve in the UI
- Trigger the same minimal test again
- Instead of executing, the system generates a new approval id, for example:
Expected behavior
Clicking Approve should consume the current pending approval and allow that request to execute.
Actual behavior
- Clicking Approve appears to have no effect on the pending request
- Re-running the same command creates a new approval id
- In earlier attempts, I also observed:
unknown or expired approval id
- approval remaining pending after clicking Approve
- approval ids changing between retries of effectively the same command
What has been ruled out
- Not an elevated-permission issue
- A separate test with
elevated: true fails earlier at the allowFrom.webchat gate, which is a different problem
- Not a dangerous-command issue
- Not an outdated version issue
- local version and latest npm version are both
2026.3.24
Likely cause
This looks like an approval state-sync issue between the webchat control UI and gateway. Possibilities:
- the UI is not submitting the correct approval id
- the approval request is being regenerated and the UI is approving an older id
- reconnect/state drift causes the UI card to reference a stale pending approval
Notes
This was reproduced with the smallest possible harmless command, so it does not appear related to command complexity.
I’m seeing a reproducible approval-flow issue in the webchat control UI (
openclaw-control-ui).Environment
2026.3.24 (cff6dc9)2026.3.24webchatopenclaw-control-uiProblem
When an
execcall requires approval, clicking Approve in the control UI does not reliably consume the pending approval request. Re-running the same command then produces a new approval id instead of executing the previously approved request.Minimal reproduction
execrequest from the webchat control UI with:trueask: "always"elevatedc43e0bd0c43e0bd0-cd85-4381-bd17-0488d76503110bc2e705Expected behavior
Clicking Approve should consume the current pending approval and allow that request to execute.
Actual behavior
unknown or expired approval idWhat has been ruled out
elevated: truefails earlier at theallowFrom.webchatgate, which is a different problemtrue2026.3.24Likely cause
This looks like an approval state-sync issue between the webchat control UI and gateway. Possibilities:
Notes
This was reproduced with the smallest possible harmless command, so it does not appear related to command complexity.