openclaw - 💡(How to fix) Fix Config Auto-Restore Conflict — plugins.allow Phantom Entries Bug [4 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

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#71540Fetched 2026-04-26 05:11:41
View on GitHub
Comments
4
Participants
2
Timeline
7
Reactions
0
Timeline (top)
commented ×4cross-referenced ×3

When removing phantom entries from plugins.allow (as recommended by openclaw security audit), the Gateway's config auto-recovery mechanism treats the valid config as "invalid" and automatically restores the previous backup — re-adding the phantom entries. This creates an impossible situation where the security warning cannot be resolved.

Error Message

WARN plugins.allow contains entries with no matching installed plugin severity: "warn",

Root Cause

Two OpenClaw subsystems are in conflict:

Fix Action

Workaround

None currently.

Code Example

WARN plugins.allow contains entries with no matching installed plugin
   The following plugins.allow entries do not correspond to any installed plugin:
   ollama, xai, anthropic, active-memory, brave, memory-core, memory-wiki

---

Config auto-restored from last-known-good: openclaw.json (reload-invalid-config)
   config reload restored last-known-good config after invalid-config

---

12:12:38 - Config auto-restored from last-known-good (reload-invalid-config)
12:12:38 - config reload restored last-known-good config after invalid-config
12:16:24 - config change detected; evaluating reload (plugins.allow)
12:16:24 - config change requires gateway restart — deferring until tasks complete
12:21:24 - restart timeout after 300101ms; restarting anyway

---

checkId: "plugins.allow_phantom_entries",
severity: "warn",
title: "plugins.allow contains entries with no matching installed plugin",
remediation: "Remove unused entries from plugins.allow"

---

12:12:38 - Config auto-restored from last-known-good (reload-invalid-config)
12:12:38 - config reload restored last-known-good config after invalid-config
RAW_BUFFERClick to expand / collapse

Bug Report: Config Auto-Restore Undoes Security Fix for plugins.allow Phantom Entries

Summary

When removing phantom entries from plugins.allow (as recommended by openclaw security audit), the Gateway's config auto-recovery mechanism treats the valid config as "invalid" and automatically restores the previous backup — re-adding the phantom entries. This creates an impossible situation where the security warning cannot be resolved.

Environment

DetailValue
OpenClaw Version2026.4.23 (a979721)
Node.jsv25.8.1
PlatformmacOS 25.4.0 (ARM64)
Gateway ModeLaunchAgent (loopback)

Steps to Reproduce

  1. Run openclaw security audit — observe warning:

    WARN plugins.allow contains entries with no matching installed plugin
    The following plugins.allow entries do not correspond to any installed plugin:
    ollama, xai, anthropic, active-memory, brave, memory-core, memory-wiki
  2. Edit ~/.openclaw/openclaw.json to remove phantom entries from plugins.allow

  3. Save the file — Gateway config watcher detects change

  4. Wait 5-10 minutes for config watcher debounce cycle

  5. Check openclaw.jsonphantom entries have returned

  6. Check logs for:

    Config auto-restored from last-known-good: openclaw.json (reload-invalid-config)
    config reload restored last-known-good config after invalid-config

Expected Behavior

According to official docs:

Bundled plugins (shipped with OpenClaw) do NOT need to be listed in plugins.allow:

  • Model providers: ollama, xai, anthropic, etc. (enabled by default)
  • Memory plugins: memory-core, memory-wiki, active-memory
  • Web search: brave

Removing these phantom entries should:

  • ✅ Be accepted as valid config
  • ✅ Pass security audit without warnings
  • ✅ Persist after Gateway restart

Actual Behavior

The Gateway's config validator incorrectly treats the removal of phantom entries as "invalid config" and triggers auto-restore from backup.

Timeline from logs:

12:12:38 - Config auto-restored from last-known-good (reload-invalid-config)
12:12:38 - config reload restored last-known-good config after invalid-config
12:16:24 - config change detected; evaluating reload (plugins.allow)
12:16:24 - config change requires gateway restart — deferring until tasks complete
12:21:24 - restart timeout after 300101ms; restarting anyway

Result: Phantom entries reappear, security warning persists.

Root Cause Analysis

Two OpenClaw subsystems are in conflict:

1. Security Audit (audit-extra.async-B8LP_fjX.js)

Correctly identifies phantom entries as a security risk:

checkId: "plugins.allow_phantom_entries",
severity: "warn",
title: "plugins.allow contains entries with no matching installed plugin",
remediation: "Remove unused entries from plugins.allow"

2. Config Validator/Reload (gateway/reload subsystem)

Incorrectly validates that all enabled plugins must be in plugins.allow:

This logic is incorrect for bundled plugins because:

  • Bundled plugins are auto-enabled by default
  • They do NOT require plugins.allow entries (per docs)
  • The validator doesn't distinguish between bundled vs. external plugins

Impact

SeverityImpact
SecurityUsers cannot resolve security audit warnings
UsabilityConfig changes are silently reverted
TrustAuto-recovery feature works against user intent

Affected Users: Anyone trying to clean up plugins.allow per security recommendations.

Workaround

None currently.

Suggested Fixes

Priority 1: Fix Config Validator Logic

Check if a plugin is bundled before requiring it in plugins.allow

Priority 2: Improve Auto-Restore Transparency

Log which specific validation failed when auto-restoring

Priority 3: Documentation Update

Clarify which plugins require plugins.allow entries (external only)

Evidence

Log Snippet

12:12:38 - Config auto-restored from last-known-good (reload-invalid-config)
12:12:38 - config reload restored last-known-good config after invalid-config

Reported by: Johannes Huijbregts (via Echo assistant)
Date: 2026-04-25

extent analysis

TL;DR

The most likely fix is to update the Config Validator/Reload subsystem to correctly handle bundled plugins and not require them to be in plugins.allow.

Guidance

  • Review the gateway/reload subsystem to ensure it distinguishes between bundled and external plugins when validating plugins.allow entries.
  • Update the config validator logic to check if a plugin is bundled before requiring it in plugins.allow.
  • Consider adding logging to indicate which specific validation failed when auto-restoring the config.
  • Verify that the security audit warning is resolved after updating the config validator logic.

Example

No code snippet is provided as the issue requires updates to the OpenClaw subsystems, which is not feasible without access to the source code.

Notes

The fix requires updates to the OpenClaw Config Validator/Reload subsystem, which may involve modifying the gateway/reload code. It is essential to ensure that the changes do not introduce new issues or affect other parts of the system.

Recommendation

Apply the suggested fix to update the Config Validator/Reload subsystem to correctly handle bundled plugins, as this will resolve the security audit warning and prevent config changes from being silently reverted.

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