Skip to content

doctor --fix populates plugins.allow with only non-bundled plugins, blocking all 65 bundled plugins under bundledDiscovery: compat #87869

@slideshow-dingo

Description

@slideshow-dingo

Bug Description

openclaw doctor --fix populates plugins.allow with only non-bundled plugins, which blocks all 65 bundled stock plugins from loading when plugins.bundledDiscovery is "compat".

Reproduction Steps

  1. Start with plugins.allow: [] and plugins.bundledDiscovery: "compat" (the v2026.5.27 default after fresh install)
  2. Install a non-bundled plugin (e.g., openclaw-honcho) and configure bundled providers (e.g., minimax, ollama, opencode-go) and a search plugin (e.g., tavily)
  3. Run openclaw doctor — it shows:
    ◇  Doctor changes preview
    minimax auth configured, enabled automatically.
    opencode-go/deepseek-v4-pro model configured, enabled automatically.
    tavily web search provider selected, enabled automatically.
    openclaw-honcho tool configured, enabled automatically.
    ollama plugin config present, added to plugin allowlist.
    
  4. Run openclaw doctor --fix

Observed Behavior

  • --fix writes plugins.allow: ["minimax", "opencode-go", "tavily", "openclaw-honcho", "ollama"]
  • On gateway restart: 65 loaded → 5 loaded, 27 disabled → 87 disabled
  • All bundled provider plugins, tool plugins, and utility plugins are blocked
  • openclaw doctor still shows the same 5 "Doctor changes preview" items again (plugins.allow was reverted by config auto-restore)
  • Gateway startup log: (2 plugins: openclaw-honcho, tavily; 2.1s) instead of the expected 65

Expected Behavior

Either:

  1. doctor --fix should NOT populate plugins.allow when bundledDiscovery: "compat" is active, since compat mode means bundled plugins auto-load regardless of the allowlist
  2. OR bundledDiscovery: "compat" should actually exempt bundled plugins from the allowlist gate at plugin load time (not just for provider discovery/inventory), so that a non-empty plugins.allow doesn't block bundled plugins
  3. OR doctor --fix should add ALL detected bundled plugins to the allowlist, not just the 5 non-bundled/config-entry ones

Impact

  • Severity: Config-breaking on doctor --fix (the recommended maintenance command)
  • Recovery: Manually revert plugins.allow to [] and restart gateway
  • Loop: Running --fix again repeats the same breakage because the 5 items still show as pending in doctor
  • v2026.5.27 regression: This was partially addressed in plugins.allow semantics undocumented — unexpectedly gates bundled channel plugins #56717 for bundled channel plugins, but the fix did not extend to bundled provider/tool/utility plugins. The doctor --fix auto-population behavior makes this much more likely to hit.

Version

OpenClaw 2026.5.27 (27ae826)
Node v26.0.0
Linux (Ubuntu 24.04 VM)
Install method: Homebrew (linuxbrew)

Related Issues

Workaround

After running doctor --fix, manually revert plugins.allow to []:

python3 -c "
import json
with open('$HOME/.openclaw/openclaw.json') as f:
    c = json.load(f)
c['plugins']['allow'] = []
with open('$HOME/.openclaw/openclaw.json', 'w') as f:
    json.dump(c, f, indent=2)
"
systemctl --user restart openclaw-gateway

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority user-facing bug, regression, or broken workflow.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions