openclaw - 💡(How to fix) Fix [Bug]: Telegram CLI message send still hangs on 2026.4.29 after grammy runtime-deps fix [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#76130Fetched 2026-05-03 04:42:01
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
2
Timeline (top)
closed ×1commented ×1unsubscribed ×1

openclaw message send --channel telegram ... --json is still reproducible as a hang on OpenClaw 2026.4.29 (a448042).

The Telegram gateway/provider path can be healthy, but the CLI send path still hangs, leaves an orphan openclaw-message process burning one CPU core, and creates sessions.json.lock.

Error Message

node -e "import('/usr/lib/node_modules/openclaw/dist/extensions/telegram/test-api.js').then(()=>console.log('TELEGRAM_IMPORT_OK')).catch(e=>{console.error(e); process.exit(1)})" 2. openclaw message send --channel telegram ... --json should either deliver through the running gateway or fail with a bounded, actionable error.

Root Cause

GraphQL: Unable to create comment because issue is locked (addComment)

Code Example

GraphQL: Unable to create comment because issue is locked (addComment)

---

OpenClaw 2026.4.29 (a448042)
Node.js v22.22.2
Linux/systemd user service
Global package path: /usr/lib/node_modules/openclaw
Gateway bind: 127.0.0.1:18789
Runtime deps path: /root/.openclaw/plugin-runtime-deps/openclaw-2026.4.29-4eca5026e977

---

openclaw gateway status --json -> RPC ok, service running
openclaw channels status --json --probe -> telegram configured=true, running=true, connected=true, probe.ok=true, mode=polling
Telegram Bot API probe -> ok for the configured bot

---

/usr/lib/node_modules/openclaw/node_modules/grammy      # absent
/usr/lib/node_modules/openclaw/node_modules/@grammyjs   # absent

---

/root/.openclaw/plugin-runtime-deps/openclaw-2026.4.29-4eca5026e977/node_modules/grammy
/root/.openclaw/plugin-runtime-deps/openclaw-2026.4.29-4eca5026e977/node_modules/@grammyjs

---

node -e "import('/usr/lib/node_modules/openclaw/dist/extensions/telegram/test-api.js').then(()=>console.log('TELEGRAM_IMPORT_OK')).catch(e=>{console.error(e); process.exit(1)})"

---

TELEGRAM_IMPORT_OK

---

timeout 35s openclaw message send \
  --channel telegram \
  --target <redacted-chat-id> \
  --message "test" \
  --json

---

CLI_SEND_EXIT=124

---

openclaw-message  ~100% CPU
/root/.openclaw/agents/main/sessions/sessions.json.lock

---

kill <openclaw-message-pid> || kill -9 <openclaw-message-pid>
rm -f /root/.openclaw/agents/main/sessions/sessions.json.lock
RAW_BUFFERClick to expand / collapse

Bug type

Regression / Telegram CLI send hang / runtime dependency resolution

Related issue

This follows up on #73140.

I tried to comment there, but GitHub returned:

GraphQL: Unable to create comment because issue is locked (addComment)

Summary

openclaw message send --channel telegram ... --json is still reproducible as a hang on OpenClaw 2026.4.29 (a448042).

The Telegram gateway/provider path can be healthy, but the CLI send path still hangs, leaves an orphan openclaw-message process burning one CPU core, and creates sessions.json.lock.

Environment

OpenClaw 2026.4.29 (a448042)
Node.js v22.22.2
Linux/systemd user service
Global package path: /usr/lib/node_modules/openclaw
Gateway bind: 127.0.0.1:18789
Runtime deps path: /root/.openclaw/plugin-runtime-deps/openclaw-2026.4.29-4eca5026e977

What is working

openclaw gateway status --json -> RPC ok, service running
openclaw channels status --json --probe -> telegram configured=true, running=true, connected=true, probe.ok=true, mode=polling
Telegram Bot API probe -> ok for the configured bot

What is still broken

After updating to 2026.4.29, grammy and @grammyjs were still absent from the global package root:

/usr/lib/node_modules/openclaw/node_modules/grammy      # absent
/usr/lib/node_modules/openclaw/node_modules/@grammyjs   # absent

They were present in the staged runtime deps:

/root/.openclaw/plugin-runtime-deps/openclaw-2026.4.29-4eca5026e977/node_modules/grammy
/root/.openclaw/plugin-runtime-deps/openclaw-2026.4.29-4eca5026e977/node_modules/@grammyjs

Symlinking those staged deps into the global package root fixed the direct Telegram module import:

node -e "import('/usr/lib/node_modules/openclaw/dist/extensions/telegram/test-api.js').then(()=>console.log('TELEGRAM_IMPORT_OK')).catch(e=>{console.error(e); process.exit(1)})"

Output:

TELEGRAM_IMPORT_OK

However, openclaw message send --channel telegram ... --json still hangs until killed/timeout, even after:

  • upgrading to 2026.4.29
  • symlinking grammy and @grammyjs
  • removing the stale plugins.load.paths config entry
  • restarting the gateway
  • confirming Telegram channel status is connected and probe-ok

Repro command

timeout 35s openclaw message send \
  --channel telegram \
  --target <redacted-chat-id> \
  --message "test" \
  --json

Actual result

CLI_SEND_EXIT=124

Each timed-out CLI send leaves an orphan process and session lock:

openclaw-message  ~100% CPU
/root/.openclaw/agents/main/sessions/sessions.json.lock

Manual cleanup required:

kill <openclaw-message-pid> || kill -9 <openclaw-message-pid>
rm -f /root/.openclaw/agents/main/sessions/sessions.json.lock

Expected behavior

  1. Published/global OpenClaw package should resolve Telegram runtime dependencies without manual symlinks.
  2. openclaw message send --channel telegram ... --json should either deliver through the running gateway or fail with a bounded, actionable error.
  3. It should not leave an orphan openclaw-message process.
  4. It should not leave sessions.json.lock behind after timeout/kill.

Current conclusion

This looks like #73140 was only partially fixed. The gateway/provider path can become healthy on 2026.4.29, but the CLI Telegram send path still hangs and leaves process/session-lock residue.

extent analysis

TL;DR

The issue can be mitigated by ensuring proper runtime dependency resolution for the Telegram CLI send path, potentially by adjusting the package installation or symlink configuration.

Guidance

  • Verify that the grammy and @grammyjs packages are correctly installed and accessible in the global package root, as their absence seems to cause the hang issue.
  • Check the plugins.load.paths config for any stale entries that might interfere with the correct loading of dependencies.
  • Consider adjusting the symlink approach to ensure that the staged runtime dependencies are properly linked to the global package root, as the current method seems to only partially resolve the issue.
  • Test the openclaw message send command with the --verbose flag (if available) to gather more detailed output that might help identify the exact point of failure.

Example

No specific code snippet is provided due to the lack of direct code references in the issue, but ensuring the correct installation and accessibility of grammy and @grammyjs could involve commands like:

npm install grammy @grammyjs

or adjusting symlinks to match the expected package locations.

Notes

The issue seems to be related to the way OpenClaw resolves its runtime dependencies, particularly for the Telegram CLI send path. The provided steps and symlinking approach have partially fixed related issues but do not fully resolve the problem. Further investigation into the dependency resolution mechanism and the specific requirements of the Telegram CLI send functionality is necessary.

Recommendation

Apply a workaround by manually ensuring the correct installation and accessibility of required packages like grammy and @grammyjs, and adjust the symlink configuration as needed, until a more permanent fix is available. This approach is chosen because it directly addresses the observed symptoms and allows for continued use of the OpenClaw system, albeit with manual intervention.

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

  1. Published/global OpenClaw package should resolve Telegram runtime dependencies without manual symlinks.
  2. openclaw message send --channel telegram ... --json should either deliver through the running gateway or fail with a bounded, actionable error.
  3. It should not leave an orphan openclaw-message process.
  4. It should not leave sessions.json.lock behind after timeout/kill.

Still need to ship something?

×6

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

Back to top recommendations

TRENDING

openclaw - 💡(How to fix) Fix [Bug]: Telegram CLI message send still hangs on 2026.4.29 after grammy runtime-deps fix [1 comments, 2 participants]