Telegram channel crashes gateway with unhandled promise rejection on fetch failure

Resolved 💬 1 comment Opened Feb 1, 2026 by SpaethBenjamin Closed Feb 1, 2026

Description

The Telegram channel's long-polling causes the entire gateway to crash when a fetch request fails. The promise rejection from the polling fetch is not caught, triggering Node's unhandled rejection handler.

Environment

  • OpenClaw version: 2026.1.29
  • Node.js: v24.13.0
  • OS: Windows 10

Reproduction

  1. Enable Telegram channel
  2. Wait for any network blip or timeout during Telegram API polling
  3. Gateway crashes

Logs

[openclaw] Unhandled promise rejection: TypeError: fetch failed 
  at node:internal/deps/undici/undici:16416:13 
  at processTicksAndRejections (node:internal/process/task_queues:103:5)

Crash occurs ~15-60 seconds after gateway becomes idle, even with no agent runs happening. Only Telegram polling is active.

Analysis

  • Crashes happen on a semi-regular interval matching Telegram's long-polling behavior
  • Third crash in logs occurred with zero agent runs between gateway startup and crash — only Telegram was running
  • telegram: autoSelectFamily=false (default-node22) in logs may be related (IPv4/IPv6 resolution)

Expected behavior

Telegram polling should catch fetch errors gracefully and retry, not crash the gateway.

Workaround

Disable Telegram channel:

{
  channels: { telegram: { enabled: false } },
  plugins: { entries: { telegram: { enabled: false } } }
}

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗