openclaw - 💡(How to fix) Fix OpenClaw 2026.4.1 Resets exec-approvals.json Allowlist - Breaking Automated Workflows [1 participants]

Official PRs (…)
ON THIS PAGE

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
openclaw/openclaw#59701Fetched 2026-04-08 02:41:40
View on GitHub
Comments
0
Participants
1
Timeline
2
Reactions
0
Participants
Timeline (top)
cross-referenced ×2

After updating to OpenClaw 2026.4.1, the exec-approvals.json file was reset/initialized with strict defaults, removing all previously working allowlist entries. This broke all automated workflows (cron jobs, ClawFlow scheduler) that rely on non-interactive command execution.

Root Cause

The CHANGELOG for 2026.4.1 includes:

- Exec/approvals: honor `exec-approvals.json` security defaults when inline or configured tool policy is unset
- Exec/approvals: make `allow-always` persist as durable user-approved trust instead of behaving like `allow-once`
- Exec/cron: resolve isolated cron no-route approval dead-ends from the effective host fallback policy when trusted automation is allowed

When the update initialized exec-approvals.json, it created a new file with:

  • security: deny (default)
  • Empty/minimal allowlist
  • No migration of existing allowlist entries

Fix Action

Fix / Workaround

Workaround Applied

Code Example

- Exec/approvals: honor `exec-approvals.json` security defaults when inline or configured tool policy is unset
- Exec/approvals: make `allow-always` persist as durable user-approved trust instead of behaving like `allow-once`
- Exec/cron: resolve isolated cron no-route approval dead-ends from the effective host fallback policy when trusted automation is allowed

---

{
  "agents": {
    "main": {
      "allowlist": [
        { "pattern": "/usr/bin/openclaw" },
        { "pattern": "/usr/bin/ls" },
        { "pattern": "/usr/bin/head" }
      ]
    }
  }
}

---

openclaw approvals allowlist add /usr/bin/python3
openclaw approvals allowlist add /usr/bin/git
openclaw approvals allowlist add /usr/bin/node
openclaw approvals allowlist add /usr/bin/bash
openclaw approvals allowlist add /usr/bin/sh

---

// Preserve existing allowlist during update
if (existingAllowlist) {
  newConfig.agents.main.allowlist = [...existingAllowlist, ...newDefaults];
}

---

⚠️  exec-approvals.json has been reset to defaults.
   Previous allowlist entries have been cleared.
   Run `openclaw doctor` to review required binaries.

---

{
  "tools": {
    "exec": {
      "cronAllowlist": ["/usr/bin/python3", "/usr/bin/node", "/usr/bin/git"],
      "automationBinaries": ["python3", "node", "git"]
    }
  }
}

---

Detected cron job: python3 /path/to/script.py
Add /usr/bin/python3 to allowlist? [Y/n]
RAW_BUFFERClick to expand / collapse

Bug Report: OpenClaw 2026.4.1 Resets exec-approvals.json Allowlist

Severity: High
Impact: Breaking change for automated workflows (cron jobs, schedulers)

Summary

After updating to OpenClaw 2026.4.1, the exec-approvals.json file was reset/initialized with strict defaults, removing all previously working allowlist entries. This broke all automated workflows (cron jobs, ClawFlow scheduler) that rely on non-interactive command execution.

Timeline

  • System before: All cron jobs and scheduler workflows running successfully
  • 2026-04-02 09:09 UTC: OpenClaw auto-updated to version 2026.4.1
  • 2026-04-02 09:10 UTC: exec-approvals.json re-initialized with defaults
  • Result: All automated workflows blocked due to missing allowlist entries

Root Cause

The CHANGELOG for 2026.4.1 includes:

- Exec/approvals: honor `exec-approvals.json` security defaults when inline or configured tool policy is unset
- Exec/approvals: make `allow-always` persist as durable user-approved trust instead of behaving like `allow-once`
- Exec/cron: resolve isolated cron no-route approval dead-ends from the effective host fallback policy when trusted automation is allowed

When the update initialized exec-approvals.json, it created a new file with:

  • security: deny (default)
  • Empty/minimal allowlist
  • No migration of existing allowlist entries

Impact

  1. Cron jobs blocked - python3 scripts cannot run without interactive approval
  2. ClawFlow scheduler stopped - Last run before update, no runs after
  3. No warning - User was not notified that allowlist was reset
  4. No migration path - Previous allowlist configuration lost

Current Allowlist After Update

{
  "agents": {
    "main": {
      "allowlist": [
        { "pattern": "/usr/bin/openclaw" },
        { "pattern": "/usr/bin/ls" },
        { "pattern": "/usr/bin/head" }
      ]
    }
  }
}

Note: /usr/bin/python3 was missing despite being essential for cron jobs.

Workaround Applied

openclaw approvals allowlist add /usr/bin/python3
openclaw approvals allowlist add /usr/bin/git
openclaw approvals allowlist add /usr/bin/node
openclaw approvals allowlist add /usr/bin/bash
openclaw approvals allowlist add /usr/bin/sh

Expected Behavior

  1. Migration: Update should preserve existing allowlist entries or migrate them
  2. Warning: If exec-approvals.json is reset/recreated, user should be warned
  3. Documentation: Clear upgrade notes for breaking changes
  4. Non-interactive policy: Cron jobs and schedulers need a way to pre-approve binaries without interactive UI

Suggested Solutions

Option A: Migration

// Preserve existing allowlist during update
if (existingAllowlist) {
  newConfig.agents.main.allowlist = [...existingAllowlist, ...newDefaults];
}

Option B: Warning System

⚠️  exec-approvals.json has been reset to defaults.
   Previous allowlist entries have been cleared.
   Run `openclaw doctor` to review required binaries.

Option C: Cron/Service Policy

{
  "tools": {
    "exec": {
      "cronAllowlist": ["/usr/bin/python3", "/usr/bin/node", "/usr/bin/git"],
      "automationBinaries": ["python3", "node", "git"]
    }
  }
}

A separate policy for non-interactive/automated workflows that doesn't require UI approval.

Option D: Auto-detection

During update, scan existing cron jobs and suggest required allowlist entries:

Detected cron job: python3 /path/to/script.py
  → Add /usr/bin/python3 to allowlist? [Y/n]

Environment

  • OpenClaw Version: 2026.4.1
  • OS: Linux (Debian/Ubuntu)
  • Previous working state: All automated workflows functional
  • Affected components: Cron jobs, ClawFlow scheduler, any non-interactive exec

Related Files

  • ~/.openclaw/exec-approvals.json - Reset during update
  • /usr/lib/node_modules/openclaw/CHANGELOG.md - Version 2026.4.1

User Impact Statement:

"Mein System hat super funktioniert... warum wurde das gemacht?"

This breaking change affected a production system without warning or migration path. Automated workflows that ran for months stopped working immediately after the update.

extent analysis

TL;DR

Manually re-add essential allowlist entries to exec-approvals.json or use the openclaw approvals allowlist add command to restore functionality to automated workflows.

Guidance

  1. Re-add allowlist entries: Manually add missing entries like /usr/bin/python3 to exec-approvals.json to restore functionality to cron jobs and schedulers.
  2. Use openclaw approvals allowlist add: Utilize the openclaw approvals allowlist add command to add required binaries, such as /usr/bin/python3, /usr/bin/git, and /usr/bin/node, to the allowlist.
  3. Review OpenClaw documentation: Check the OpenClaw documentation for any upgrade notes or guidelines on handling breaking changes, especially regarding exec-approvals.json.
  4. Test automated workflows: After re-adding allowlist entries or using the openclaw approvals allowlist add command, test cron jobs and schedulers to ensure they are functioning as expected.

Example

To add /usr/bin/python3 to the allowlist using the openclaw approvals allowlist add command:

openclaw approvals allowlist add /usr/bin/python3

Notes

The provided workaround using openclaw approvals allowlist add is a temporary solution. A more permanent fix would involve preserving existing allowlist entries during updates or implementing a warning system to notify users of changes to exec-approvals.json.

Recommendation

Apply the workaround by manually re-adding essential allowlist entries or using the openclaw approvals allowlist add command, as this is the most straightforward way to restore functionality to automated workflows without waiting for a potential update that addresses the issue.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING