Skip to content

Auto-update leaves stale chunk reference: conversation-runtime imports missing inbound.runtime-*.js → Telegram inbound dead until restart #75206

@xonaman

Description

@xonaman

Symptom

After auto-update from v2026.4.24 → v2026.4.27, Telegram bot threw ERR_MODULE_NOT_FOUND on every inbound update for ~5 hours. No messages were delivered to the agent until a manual gateway restart pulled fresh dist files.

Logs

Apr 30 12:15:51 [telegram] bot error: Error [ERR_MODULE_NOT_FOUND]: Cannot find module
'/home/openclaw/.npm-global/lib/node_modules/openclaw/dist/inbound.runtime-DEk_2xSV.js'
imported from '/home/openclaw/.npm-global/lib/node_modules/openclaw/dist/conversation-runtime-DZww4kYq.js'
    at finalizeResolution (node:internal/modules/esm/resolve:275:11)

Recurred at 14:54:25, 14:54:42, 14:55:06 UTC. Each timestamp = an inbound user message that was silently dropped.

Root cause (suspected)

conversation-runtime-DZww4kYq.js was emitted with a hard-coded import to chunk inbound.runtime-DEk_2xSV.js, but the v2026.4.27 build only contains:

  • inbound.runtime-B7N1Yxh6.js
  • inbound.runtime-LSHe2Sau.js

Chunk-hash mismatch — either the bundler emitted stale references, or auto-update did not atomically replace all chunks.

Resolution observed

Manual gateway restart reloaded fresh dist files. Telegram inbound recovered immediately.

Environment

  • Host: Ubuntu, Node 22.22.1
  • OpenClaw: v2026.4.27 (auto-updated from 2026.4.24 same day)
  • Channel: telegram
  • Install: npm global

Impact

High. Auto-update is supposed to be safe; this leaves the agent silently unable to receive any Telegram messages until something else triggers a restart. No alert path catches it unless something is specifically watching for bot error in the journal.

Suggested fixes

  1. After auto-update, validate all dist chunk imports resolve before swapping the symlink / version.
  2. On Telegram ERR_MODULE_NOT_FOUND from a runtime chunk, force a gateway restart automatically.
  3. Treat any inbound-channel runtime error as a P0 alert (out-of-band, not just a journal line).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions