openclaw - 💡(How to fix) Fix Telegram channel fails to load: Cannot find module grammy (missing bundled dep) [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#76198Fetched 2026-05-03 04:40:58
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
2
Timeline (top)
closed ×1commented ×1unsubscribed ×1

Error Message

The Telegram channel fails to load on startup with the following error:

Fix Action

Workaround

Manually symlink the missing packages from plugin-runtime-deps into openclaw's node_modules:

DEPS=~/.openclaw/plugin-runtime-deps/openclaw-2026.4.29-d95749a2df8f/node_modules
OCL_MODS=~/.npm-global/lib/node_modules/openclaw/node_modules

ln -s $DEPS/grammy $OCL_MODS/grammy
mkdir -p $OCL_MODS/@grammyjs
ln -s $DEPS/@grammyjs/runner $OCL_MODS/@grammyjs/runner
ln -s $DEPS/@grammyjs/transformer-throttler $OCL_MODS/@grammyjs/transformer-throttler

This symlink is lost after each openclaw update.

Code Example

[channels] failed to load bundled channel telegram: Cannot find module 'grammy'
Require stack:
- /home/mike/.npm-global/lib/node_modules/openclaw/dist/extensions/telegram/send-t4GTTdHF.js

---

import * as grammy from "grammy";
import { Bot, HttpError } from "grammy";

---

DEPS=~/.openclaw/plugin-runtime-deps/openclaw-2026.4.29-d95749a2df8f/node_modules
OCL_MODS=~/.npm-global/lib/node_modules/openclaw/node_modules

ln -s $DEPS/grammy $OCL_MODS/grammy
mkdir -p $OCL_MODS/@grammyjs
ln -s $DEPS/@grammyjs/runner $OCL_MODS/@grammyjs/runner
ln -s $DEPS/@grammyjs/transformer-throttler $OCL_MODS/@grammyjs/transformer-throttler
RAW_BUFFERClick to expand / collapse

Bug description

The Telegram channel fails to load on startup with the following error:

[channels] failed to load bundled channel telegram: Cannot find module 'grammy'
Require stack:
- /home/mike/.npm-global/lib/node_modules/openclaw/dist/extensions/telegram/send-t4GTTdHF.js

The extension file dist/extensions/telegram/send-t4GTTdHF.js uses:

import * as grammy from "grammy";
import { Bot, HttpError } from "grammy";

and also imports @grammyjs/runner and @grammyjs/transformer-throttler.

These packages exist in ~/.openclaw/plugin-runtime-deps/openclaw-<version>/node_modules/ (installed by memory-core plugin), but are not present in openclaw's own node_modules/, where the bundled channel extension expects to find them.

Steps to reproduce

  1. Fresh install or openclaw update to v2026.4.29
  2. Start the gateway: systemctl --user start openclaw-gateway
  3. Observe logs: [channels] failed to load bundled channel telegram: Cannot find module 'grammy'

Environment

  • OpenClaw: 2026.4.29 (a448042)
  • OS: Ubuntu Linux 7.0.0-14-generic x64
  • Node.js: 22.22.2
  • Install method: npm global (npm install -g openclaw)

Workaround

Manually symlink the missing packages from plugin-runtime-deps into openclaw's node_modules:

DEPS=~/.openclaw/plugin-runtime-deps/openclaw-2026.4.29-d95749a2df8f/node_modules
OCL_MODS=~/.npm-global/lib/node_modules/openclaw/node_modules

ln -s $DEPS/grammy $OCL_MODS/grammy
mkdir -p $OCL_MODS/@grammyjs
ln -s $DEPS/@grammyjs/runner $OCL_MODS/@grammyjs/runner
ln -s $DEPS/@grammyjs/transformer-throttler $OCL_MODS/@grammyjs/transformer-throttler

This symlink is lost after each openclaw update.

Expected behavior

grammy, @grammyjs/runner, and @grammyjs/transformer-throttler should be declared as dependencies of the telegram bundled channel (or shipped as part of openclaw's own node_modules) so the channel loads without manual intervention.

extent analysis

TL;DR

Manually symlinking the missing grammy and @grammyjs packages from plugin-runtime-deps into openclaw's node_modules may resolve the issue.

Guidance

  • Verify that the grammy and @grammyjs packages are correctly installed in ~/.openclaw/plugin-runtime-deps/openclaw-<version>/node_modules/.
  • Check if there are any version conflicts between the packages installed by memory-core plugin and the ones expected by the telegram channel.
  • Consider declaring grammy, @grammyjs/runner, and @grammyjs/transformer-throttler as dependencies of the telegram bundled channel to ensure they are always available.
  • After applying the workaround, restart the gateway to ensure the changes take effect.

Example

The provided workaround script can be used as a temporary solution:

DEPS=~/.openclaw/plugin-runtime-deps/openclaw-2026.4.29-d95749a2df8f/node_modules
OCL_MODS=~/.npm-global/lib/node_modules/openclaw/node_modules

ln -s $DEPS/grammy $OCL_MODS/grammy
mkdir -p $OCL_MODS/@grammyjs
ln -s $DEPS/@grammyjs/runner $OCL_MODS/@grammyjs/runner
ln -s $DEPS/@grammyjs/transformer-throttler $OCL_MODS/@grammyjs/transformer-throttler

Notes

This workaround may need to be reapplied after each openclaw update. A more permanent solution would involve updating the dependencies of the telegram channel or openclaw's own node_modules.

Recommendation

Apply the workaround by symlinking the missing packages, as it provides a temporary solution to the

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

grammy, @grammyjs/runner, and @grammyjs/transformer-throttler should be declared as dependencies of the telegram bundled channel (or shipped as part of openclaw's own node_modules) so the channel loads without manual intervention.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING