Bug
Description
After upgrading OpenClaw to 2026.3.8, the diagnostics-otel extension fails to load because its node_modules are missing:
[plugins] diagnostics-otel failed to load from /opt/homebrew/lib/node_modules/openclaw/extensions/diagnostics-otel/index.ts:
Error: Cannot find module '@opentelemetry/api'
This causes all CLI commands (e.g., openclaw message send) to exit with code 1 silently.
Root Cause
The diagnostics-otel extension has its own package.json with dependencies (72 packages including @opentelemetry/api, @opentelemetry/sdk-node, etc.), but the main npm install / openclaw update process does not run npm install inside extension subdirectories.
Workaround
cd /opt/homebrew/lib/node_modules/openclaw/extensions/diagnostics-otel
npm install
Expected Behavior
openclaw update (or the npm global install process) should automatically install dependencies for all extensions that have a package.json.
Suggested Fix
During the update/install lifecycle, iterate over extensions/*/package.json and run npm install for each. Alternatively, hoist extension dependencies into the main package.json.
Environment
- OpenClaw: 2026.3.8 (3caab92)
- Node: v25.2.1
- OS: macOS (Darwin arm64)
- Install method: npm global (
/opt/homebrew/lib/node_modules/openclaw)
Bug
Description
After upgrading OpenClaw to 2026.3.8, the
diagnostics-otelextension fails to load because itsnode_modulesare missing:This causes all CLI commands (e.g.,
openclaw message send) to exit with code 1 silently.Root Cause
The
diagnostics-otelextension has its ownpackage.jsonwith dependencies (72 packages including@opentelemetry/api,@opentelemetry/sdk-node, etc.), but the mainnpm install/openclaw updateprocess does not runnpm installinside extension subdirectories.Workaround
cd /opt/homebrew/lib/node_modules/openclaw/extensions/diagnostics-otel npm installExpected Behavior
openclaw update(or the npm global install process) should automatically install dependencies for all extensions that have apackage.json.Suggested Fix
During the update/install lifecycle, iterate over
extensions/*/package.jsonand runnpm installfor each. Alternatively, hoist extension dependencies into the mainpackage.json.Environment
/opt/homebrew/lib/node_modules/openclaw)