openclaw - 💡(How to fix) Fix [Bug]: ERR_MODULE_NOT_FOUND 'openclaw' still happening on 2026.4.22 (Telegram channel + scheduled cron) — same root cause as #71484, fix appears incomplete on upgrade path [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#72415Fetched 2026-04-27 05:30:23
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
0
Author
Timeline (top)
closed ×1commented ×1cross-referenced ×1

Same root cause as #71484 (closed 2026-04-25 as completed) — the bundled-deps installer for ~/.openclaw/plugin-runtime-deps/openclaw-<VER>-<HASH>/node_modules/ populates ~250 transitive packages but does not install or symlink the openclaw package itself, so every extension importing openclaw/plugin-sdk/* fails with ERR_MODULE_NOT_FOUND at runtime.

I'm reporting this against 2026.4.22 on Linux Rocky 9.7 (Node v22.22.2) — install came from npm i -g openclaw. The fix from #71484 doesn't appear to be effective for this combination, or the gateway was upgraded to 2026.4.22 from an older version without re-staging deps. Either way the visible symptom is identical and impacts more than Discord.

In my case the broken path was Telegram, not Discord — every cron job that calls openclaw message send --channel telegram ... failed silently for days (cron lastStatus: error, all 14+ scheduled jobs that send Telegram notifications). Affected my whole proactive notification flow (security audit summaries, daily PM reports, doc-sync confirmations).

Error Message

In my case the broken path was Telegram, not Discord — every cron job that calls openclaw message send --channel telegram ... failed silently for days (cron lastStatus: error, all 14+ scheduled jobs that send Telegram notifications). Affected my whole proactive notification flow (security audit summaries, daily PM reports, doc-sync confirmations). Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'openclaw' imported from Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'openclaw' imported from /home/agente/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/dist/extensions/telegram/action-runtime-BHjxTwhY.js

Root Cause

Same root cause as #71484 (closed 2026-04-25 as completed) — the bundled-deps installer for ~/.openclaw/plugin-runtime-deps/openclaw-<VER>-<HASH>/node_modules/ populates ~250 transitive packages but does not install or symlink the openclaw package itself, so every extension importing openclaw/plugin-sdk/* fails with ERR_MODULE_NOT_FOUND at runtime.

Fix Action

Fix / Workaround

Workaround applied locally

Possible reasons (I haven't read the merged fix):

  1. The fix only runs on fresh installs of the runtime-deps directory; existing dirs from earlier versions don't get patched in-place when openclaw is upgraded from 2026.4.x2026.4.22.
  2. The fix only covers Discord (which was the original symptom) and didn't generalize to all 8 extensions that import openclaw/*.
  3. Possible interaction with #72374 (bundled runtime dependency staging running npm without isolated package root).

Code Example

Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'openclaw' imported from
/home/<USER>/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/dist/extensions/telegram/action-runtime-BHjxTwhY.js

---

$ ls ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/openclaw
ls: cannot access ...: No such file or directory

---

ln -s /usr/lib/node_modules/openclaw \
  ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/openclaw

---

$ openclaw message send --channel telegram --account dinnerkids --target <CHAT_ID> --message "test"
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'openclaw' imported from /home/agente/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/dist/extensions/telegram/action-runtime-BHjxTwhY.js

$ ls ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/ | grep -i openclaw
(empty)

$ ln -s /usr/lib/node_modules/openclaw ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/openclaw

$ openclaw message send --channel telegram --account dinnerkids --target <CHAT_ID> --message "test"
Sent via Telegram. Message ID: 678
RAW_BUFFERClick to expand / collapse

Bug type

Regression (worked before, now fails)

Beta release blocker

No

Summary

Same root cause as #71484 (closed 2026-04-25 as completed) — the bundled-deps installer for ~/.openclaw/plugin-runtime-deps/openclaw-<VER>-<HASH>/node_modules/ populates ~250 transitive packages but does not install or symlink the openclaw package itself, so every extension importing openclaw/plugin-sdk/* fails with ERR_MODULE_NOT_FOUND at runtime.

I'm reporting this against 2026.4.22 on Linux Rocky 9.7 (Node v22.22.2) — install came from npm i -g openclaw. The fix from #71484 doesn't appear to be effective for this combination, or the gateway was upgraded to 2026.4.22 from an older version without re-staging deps. Either way the visible symptom is identical and impacts more than Discord.

In my case the broken path was Telegram, not Discord — every cron job that calls openclaw message send --channel telegram ... failed silently for days (cron lastStatus: error, all 14+ scheduled jobs that send Telegram notifications). Affected my whole proactive notification flow (security audit summaries, daily PM reports, doc-sync confirmations).

Steps to reproduce

  1. Linux host, openclaw 2026.4.22 global (/usr/lib/node_modules/openclaw/), Node 22.22.2.
  2. Configure a Telegram account in ~/.openclaw/openclaw.json.
  3. Run any cron that sends Telegram, e.g. openclaw message send --channel telegram --account <id> --target <chat> --message "test".
  4. Observe failure:
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'openclaw' imported from
/home/<USER>/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/dist/extensions/telegram/action-runtime-BHjxTwhY.js
  1. Confirm the missing peer:
$ ls ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/openclaw
ls: cannot access ...: No such file or directory

Expected behavior

node_modules/openclaw should exist inside the runtime-deps version directory (either real install or symlink to the host-global package when versions match), as suggested in #71484.

Actual behavior

node_modules/openclaw is missing entirely. All 8 extensions that import from openclaw/plugin-sdk/* (acpx, amazon-bedrock, amazon-bedrock-mantle, anthropic, codex, discord, google, telegram) fail at module resolution time.

Workaround applied locally

ln -s /usr/lib/node_modules/openclaw \
  ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/openclaw

After this single symlink the Telegram channel started working immediately (verified via openclaw message send → message delivered).

Why this might be reappearing after #71484 was closed

Possible reasons (I haven't read the merged fix):

  1. The fix only runs on fresh installs of the runtime-deps directory; existing dirs from earlier versions don't get patched in-place when openclaw is upgraded from 2026.4.x2026.4.22.
  2. The fix only covers Discord (which was the original symptom) and didn't generalize to all 8 extensions that import openclaw/*.
  3. Possible interaction with #72374 (bundled runtime dependency staging running npm without isolated package root).

Suggesting a small openclaw doctor --fix check that verifies node_modules/openclaw exists inside every version dir under plugin-runtime-deps/ would catch this for users coming in via upgrade rather than fresh install.

OpenClaw version

OpenClaw 2026.4.22 (00bd2cf), host CLI from /usr/bin/openclaw/usr/lib/node_modules/openclaw.

Operating system

Linux Rocky Linux 9.7 (kernel 6.17.9-1-pve, Proxmox VM, x86_64).

Install method

npm i -g openclaw on Node v22.22.2.

Model

all (this is below the model layer)

Provider / routing chain

Telegram channel + any extension importing openclaw/* from the bundled runtime.

Logs, screenshots, and evidence

$ openclaw message send --channel telegram --account dinnerkids --target <CHAT_ID> --message "test"
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'openclaw' imported from /home/agente/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/dist/extensions/telegram/action-runtime-BHjxTwhY.js

$ ls ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/ | grep -i openclaw
(empty)

$ ln -s /usr/lib/node_modules/openclaw ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/openclaw

$ openclaw message send --channel telegram --account dinnerkids --target <CHAT_ID> --message "test"
✅ Sent via Telegram. Message ID: 678

Impact and severity

For my deployment: 14+ scheduled cron jobs across 3 agents (pm-dinnerkids, security-dinnerkids, docs-dinnerkids, plus several from a separate sobot agent) silently failed on every Telegram send for days. The work itself (audits, vault sync, PM reports) ran to completion — only the user-facing notification was lost — so it was easy to miss. Detection only happened when manually reviewing cron lastStatus.

Additional information

Related: #71484 (closed, same root cause, originally Discord-only), #72374 (open, isolated package-root proposal that would also address this).

extent analysis

TL;DR

The issue can be resolved by creating a symlink to the openclaw package in the node_modules directory of the runtime-deps version directory.

Guidance

  • Verify that the node_modules/openclaw directory is missing by running ls ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/ | grep -i openclaw.
  • Create a symlink to the openclaw package using the command ln -s /usr/lib/node_modules/openclaw ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/openclaw.
  • Test the fix by running openclaw message send --channel telegram --account <id> --target <chat> --message "test" and verifying that the message is sent successfully.
  • Consider implementing a check in openclaw doctor --fix to verify the existence of node_modules/openclaw in every version directory under plugin-runtime-deps/.

Example

The provided workaround can be applied locally using the following command:

ln -s /usr/lib/node_modules/openclaw \
  ~/.openclaw/plugin-runtime-deps/openclaw-2026.4.22-4eca5026e977/node_modules/openclaw

Notes

The issue may be related to the fact that the fix for #71484 only runs on fresh installs of the runtime-deps directory, and existing directories from earlier versions may not get patched in-place when openclaw is upgraded.

Recommendation

Apply the workaround by creating a symlink to the openclaw package, as this has been shown to resolve the issue in the reported case.

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

node_modules/openclaw should exist inside the runtime-deps version directory (either real install or symlink to the host-global package when versions match), as suggested in #71484.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING