openclaw - 💡(How to fix) Fix [Bug]: openclaw-doctor silently self-triggers "npm install -g openclaw@latest" when a default-enabled plugin requires a newer version [1 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#72715Fetched 2026-04-28 06:33:03
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
0
Author
Participants
Timeline (top)
closed ×1commented ×1cross-referenced ×1

On a service-managed Linux host running openclaw-gateway.service, openclaw-doctor silently issues npm install -g openclaw@latest --no-fund --no-audit --loglevel error against the global package whenever a bundled, default-enabled plugin (e.g. feishu, whatsapp) declares a minimum OpenClaw version higher than the one currently installed. This silently undoes a deliberate downgrade.

Error Message

On a service-managed Linux host running openclaw-gateway.service, openclaw-doctor silently issues npm install -g openclaw@latest --no-fund --no-audit --loglevel error against the global package whenever a bundled, default-enabled plugin (e.g. feishu, whatsapp) declares a minimum OpenClaw version higher than the one currently installed. This silently undoes a deliberate downgrade. verbose argv "i" "--global" "openclaw@latest" "--no-fund" "--no-audit" "--loglevel" "error"

Root Cause

On a service-managed Linux host running openclaw-gateway.service, openclaw-doctor silently issues npm install -g openclaw@latest --no-fund --no-audit --loglevel error against the global package whenever a bundled, default-enabled plugin (e.g. feishu, whatsapp) declares a minimum OpenClaw version higher than the one currently installed. This silently undoes a deliberate downgrade.

Fix Action

Workaround

Add the offending plugins to openclaw.json with enabled: false:

{
  "plugins": {
    "entries": {
      "feishu":   { "enabled": false },
      "whatsapp": { "enabled": false }
    }
  }
}

After that, the doctor stops self-triggering the upgrade and the downgrade is stable across restarts.

Code Example

Invalid config at <state-dir>/openclaw.json:
   - plugins.entries.feishu:   plugin requires OpenClaw >=2026.4.24, but this host is 2026.4.23; skipping load
   - plugins.entries.whatsapp: plugin requires OpenClaw >=2026.4.24, but this host is 2026.4.23; skipping load
   Killing process <PID> (openclaw-doctor) with signal SIGKILL
   Killing process <PID> (npm install @anthropic-ai/sdk ...) with signal SIGKILL

---

verbose title npm i openclaw@latest
   verbose argv "i" "--global" "openclaw@latest" "--no-fund" "--no-audit" "--loglevel" "error"
   silly fetch manifest openclaw@2026.4.24
   silly placeDep ROOT openclaw@2026.4.24 OK

---

{
  "plugins": {
    "entries": {
      "feishu":   { "enabled": false },
      "whatsapp": { "enabled": false }
    }
  }
}
RAW_BUFFERClick to expand / collapse

Bug type

Behavior bug

Summary

On a service-managed Linux host running openclaw-gateway.service, openclaw-doctor silently issues npm install -g openclaw@latest --no-fund --no-audit --loglevel error against the global package whenever a bundled, default-enabled plugin (e.g. feishu, whatsapp) declares a minimum OpenClaw version higher than the one currently installed. This silently undoes a deliberate downgrade.

Steps to reproduce

  1. Linux host, OpenClaw installed via npm install -g openclaw, gateway running as openclaw-gateway.service. Current version 2026.4.24.
  2. Downgrade: npm install -g [email protected], restart the gateway.
  3. Do not edit openclaw.json; leave default-enabled bundled plugins (feishu, whatsapp) enabled.
  4. Within a few minutes the gateway logs:
    Invalid config at <state-dir>/openclaw.json:
    - plugins.entries.feishu:   plugin requires OpenClaw >=2026.4.24, but this host is 2026.4.23; skipping load
    - plugins.entries.whatsapp: plugin requires OpenClaw >=2026.4.24, but this host is 2026.4.23; skipping load
    Killing process <PID> (openclaw-doctor) with signal SIGKILL
    Killing process <PID> (npm install @anthropic-ai/sdk ...) with signal SIGKILL
  5. ~/.npm/_logs/<ts>-debug-0.log shows:
    verbose title npm i openclaw@latest
    verbose argv "i" "--global" "openclaw@latest" "--no-fund" "--no-audit" "--loglevel" "error"
    silly fetch manifest [email protected]
    silly placeDep ROOT [email protected] OK
  6. After the next restart the host is back on 2026.4.24 and the downgrade has been silently undone.

Expected behavior

Either:

  • the doctor refuses to satisfy requires OpenClaw >= X by self-upgrading, and instead surfaces an actionable warning ("plugin X needs newer OpenClaw; either run 'openclaw update' or set enabled: false for this plugin"), or
  • the self-upgrade is gated behind explicit opt-in (env var, config flag, or interactive confirmation). I could not find a documented opt-out — OPENCLAW_NO_AUTO_UPDATE and similar do not appear in the shipped bundle. Only OPENCLAW_UPDATE_IN_PROGRESS and OPENCLAW_NO_RESPAWN are referenced.

Actual behavior

The doctor silently issues npm install -g openclaw@latest. There is no [gateway] update started / [doctor] auto-upgrading log line that frames this as an automated update. The user only sees the killed-during-shutdown stragglers in the journal.

Workaround

Add the offending plugins to openclaw.json with enabled: false:

{
  "plugins": {
    "entries": {
      "feishu":   { "enabled": false },
      "whatsapp": { "enabled": false }
    }
  }
}

After that, the doctor stops self-triggering the upgrade and the downgrade is stable across restarts.

Environment

  • OpenClaw: 2026.4.24, downgrade attempted to 2026.4.23
  • OS: Linux, npm global install, systemd user service openclaw-gateway.service

Related

  • #64892 — covers the agent-explicitly-asked self-upgrade case; this is the automatic, unprompted variant.
  • #72206 — the 2026.4.24 cli-backend bug that motivates downgrading in the first place.

extent analysis

TL;DR

Disable the offending plugins in openclaw.json to prevent the doctor from silently upgrading OpenClaw.

Guidance

  • Identify the plugins that are causing the upgrade by checking the gateway logs for lines like plugin requires OpenClaw >=2026.4.24.
  • Add these plugins to openclaw.json with enabled: false to prevent the doctor from upgrading OpenClaw.
  • Verify that the downgrade is stable across restarts by checking the OpenClaw version after restarting the gateway.
  • Consider tracking related issues (#64892 and #72206) for potential fixes or workarounds.

Example

{
  "plugins": {
    "entries": {
      "feishu":   { "enabled": false },
      "whatsapp": { "enabled": false }
    }
  }
}

Notes

This workaround may not be suitable for all use cases, as it disables the offending plugins. A more permanent fix may require updates to the OpenClaw doctor or the plugins themselves.

Recommendation

Apply the workaround by disabling the offending plugins in openclaw.json, as it is a straightforward and effective solution to prevent the silent upgrade.

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…

FAQ

Expected behavior

Either:

  • the doctor refuses to satisfy requires OpenClaw >= X by self-upgrading, and instead surfaces an actionable warning ("plugin X needs newer OpenClaw; either run 'openclaw update' or set enabled: false for this plugin"), or
  • the self-upgrade is gated behind explicit opt-in (env var, config flag, or interactive confirmation). I could not find a documented opt-out — OPENCLAW_NO_AUTO_UPDATE and similar do not appear in the shipped bundle. Only OPENCLAW_UPDATE_IN_PROGRESS and OPENCLAW_NO_RESPAWN are referenced.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING