openclaw - 💡(How to fix) Fix 🐛 Gateway overwrites plugins.allow with invalid plugin IDs (qqbot/minimax) on restart [1 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#61613Fetched 2026-04-08 02:56:50
View on GitHub
Comments
0
Participants
1
Timeline
1
Reactions
1
Author
Participants
Timeline (top)
cross-referenced ×1

Fix Action

Fix / Workaround

Workaround: Run a fix script after every restart:

import json
d = json.load(open('/Users/zhouluyong/.openclaw/openclaw.json'))
d['plugins']['allow'] = ['telegram']
for k in list(d['plugins'].get('entries', {}).keys()):
    if k not in {'feishu', 'telegram', 'openclaw-qqbot'}:
        del d['plugins']['entries'][k]
json.dump(d, open('/Users/zhouluyong/.openclaw/openclaw.json', 'w'), indent=2)

Code Example

"plugins": {
     "allow": ["telegram"],
     "entries": {
       "openclaw-qqbot": { "enabled": true }
     }
   }

---

import json
d = json.load(open('/Users/zhouluyong/.openclaw/openclaw.json'))
d['plugins']['allow'] = ['telegram']
for k in list(d['plugins'].get('entries', {}).keys()):
    if k not in {'feishu', 'telegram', 'openclaw-qqbot'}:
        del d['plugins']['entries'][k]
json.dump(d, open('/Users/zhouluyong/.openclaw/openclaw.json', 'w'), indent=2)
RAW_BUFFERClick to expand / collapse

🐛 Bug: Gateway overwrites plugins.allow with invalid plugin IDs on restart

Description: Every time openclaw gateway restart runs, the Gateway process overwrites ~/.openclaw/openclaw.json with invalid values in plugins.allow. Specifically, it adds "qqbot" and "minimax" to plugins.allow, but these are not valid installed plugin IDs. The valid plugin IDs are:

  • "openclaw-qqbot" (for the QQ bot plugin)
  • "minimax-portal" (for the minimax auth plugin)

This causes gateway status to report Config invalid on every restart.

Steps to reproduce:

  1. Manually fix the config:
    "plugins": {
      "allow": ["telegram"],
      "entries": {
        "openclaw-qqbot": { "enabled": true }
      }
    }
  2. Run openclaw gateway restart
  3. Run openclaw gateway status — the config is invalid again
  4. Check plugins.allow — it now contains ["telegram", "qqbot", "minimax"]

Expected behavior: Gateway should either:

  • Not overwrite the config with invalid plugin IDs, OR
  • Map "qqbot""openclaw-qqbot" and "minimax""minimax-portal" internally

Environment:

  • macOS (Darwin arm64)
  • Node.js v22.22.1
  • OpenClaw v2026.4.1
  • Plugins installed: openclaw-qqbot (v1.5.7), minimax-portal (auth)

Workaround: Run a fix script after every restart:

import json
d = json.load(open('/Users/zhouluyong/.openclaw/openclaw.json'))
d['plugins']['allow'] = ['telegram']
for k in list(d['plugins'].get('entries', {}).keys()):
    if k not in {'feishu', 'telegram', 'openclaw-qqbot'}:
        del d['plugins']['entries'][k]
json.dump(d, open('/Users/zhouluyong/.openclaw/openclaw.json', 'w'), indent=2)

extent analysis

TL;DR

Modify the Gateway restart process to prevent overwriting the plugins.allow configuration with invalid plugin IDs.

Guidance

  • Verify the plugins.allow configuration is being overwritten by checking the ~/.openclaw/openclaw.json file after running openclaw gateway restart.
  • Update the Gateway restart process to either not modify the plugins.allow configuration or to map invalid plugin IDs ("qqbot", "minimax") to their corresponding valid IDs ("openclaw-qqbot", "minimax-portal").
  • Consider implementing a fix script, similar to the provided workaround, to automatically correct the plugins.allow configuration after each restart.
  • Review the Gateway's configuration handling to ensure it accurately reflects the installed plugins and their IDs.

Example

The provided workaround script demonstrates how to correct the plugins.allow configuration:

import json
d = json.load(open('/Users/zhouluyong/.openclaw/openclaw.json'))
d['plugins']['allow'] = ['telegram']
for k in list(d['plugins'].get('entries', {}).keys()):
    if k not in {'feishu', 'telegram', 'openclaw-qqbot'}:
        del d['plugins']['entries'][k]
json.dump(d, open('/Users/zhouluyong/.openclaw/openclaw.json', 'w'), indent=2)

Notes

The exact implementation of the fix may depend on the internal workings of the Gateway and its configuration handling. This guidance assumes that the issue is specific to the Gateway's restart process and its handling of the plugins.allow configuration.

Recommendation

Apply a workaround, such as the provided fix script, to automatically correct the plugins.allow configuration after each restart, until a more permanent fix can be implemented. This will prevent the Config invalid error and ensure the Gateway functions as expected.

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

openclaw - 💡(How to fix) Fix 🐛 Gateway overwrites plugins.allow with invalid plugin IDs (qqbot/minimax) on restart [1 participants]