Skip to content

[Bug]: Core upgrade via npm does not sync external plugins — plugins update command also fails to detect drift #94641

Description

@w0yne

Summary

When upgrading OpenClaw core via npm install -g, the external plugins in ~/.openclaw/npm/ are not upgraded in tandem. This creates a version mismatch between core and plugins that causes hard failures at runtime (e.g. No API provider registered for api: bedrock-converse-stream). Additionally, the official openclaw plugins update --all command fails to detect the drift due to conflicting SQLite metadata.

This is a data point reinforcing #83337 and #88707, but with additional evidence that the built-in recovery path (plugins update) is also broken.

Environment

Reproduction

  1. Have a working OpenClaw setup with external plugins installed in ~/.openclaw/npm/
  2. Upgrade core: npm install -g @openclaw/openclaw@latest
  3. Restart the gateway (via launchctl or any external method)
  4. Send a message → "LLM request failed"

Error Evidence

From /tmp/openclaw/openclaw-2026-06-18.log:

{
  "isError": true,
  "error": "LLM request failed.",
  "rawErrorPreview": "No API provider registered for api: bedrock-converse-stream",
  "model": "global.anthropic.claude-opus-4-6-v1",
  "provider": "amazon-bedrock"
}

Root Cause

Core 2026.6.8 expects the bedrock provider plugin to call registerApiProvider with the new plugin SDK. The old plugin (2026.5.27) doesn't have this registration code → API never gets registered → all LLM calls fail.

plugins update Also Broken

Running openclaw plugins update --all reports "already up to date" even though plugins are 2026.5.27 while core is 2026.6.8:

$ openclaw plugins update --all --dry-run
# Reports plugins as "already up to date" at 2026.5.27
# Doctor warning: "conflicting package metadata entries"

The SQLite install index has stale metadata that prevents the update command from recognizing the drift.

Workaround

Manual npm upgrade in the plugins directory:

cd ~/.openclaw/npm
npm install @openclaw/amazon-bedrock-provider@latest \
            @openclaw/feishu@latest \
            @openclaw/slack@latest
# Then restart gateway

Impact

This is a hard upgrade blocker for any user with external plugins. The failure mode is especially bad because:

  1. npm install -g reports success → user thinks upgrade is done
  2. Gateway starts without error in the log → appears healthy
  3. First message fails with cryptic "LLM request failed" → user thinks the upgrade broke something
  4. Built-in recovery (plugins update) doesn't work → user is stuck without manual npm knowledge

Expected Behavior

At minimum one of these should work:

  • Option A: npm install -g also upgrades ~/.openclaw/npm/ plugins (or prompts to do so)
  • Option B: Gateway startup detects core/plugin version mismatch and refuses to start with a clear error message explaining how to fix
  • Option C: openclaw plugins update --all correctly detects and resolves the drift

Related Issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1High-priority user-facing bug, regression, or broken workflow.impact:auth-providerAuth, provider routing, model choice, or SecretRef resolution may break.impact:message-lossChannel message delivery can be lost, duplicated, or misrouted.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions