openclaw - 💡(How to fix) Fix [Bug] 2026.4.27 regression: Telegram provider logs "starting" but never begins long-poll; inbound silently dropped, outbound still works (regression of #45714 / #69064) [3 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#75263Fetched 2026-05-01 05:36:04
View on GitHub
Comments
3
Participants
2
Timeline
5
Reactions
2
Author
Timeline (top)
commented ×3closed ×1cross-referenced ×1

On openclaw 2026.4.27 (cbc2ba0), macOS 15 (Darwin 25.4.0), the Telegram provider logs [default] starting provider (@ACP_openclaw_bot) at startup and then never produces any further telegram-subsystem activity. No getUpdates, no inbound message events, no error. Outbound sendMessage still works for any send the agent kicks off WITHOUT requiring inbound (e.g., scheduled posts, replies to messages received before the stall). This matches the symptom of #45714 and the silent-no-resume failure mode of #69064, both closed in the prior week.

Error Message

On openclaw 2026.4.27 (cbc2ba0), macOS 15 (Darwin 25.4.0), the Telegram provider logs [default] starting provider (@ACP_openclaw_bot) at startup and then never produces any further telegram-subsystem activity. No getUpdates, no inbound message events, no error. Outbound sendMessage still works for any send the agent kicks off WITHOUT requiring inbound (e.g., scheduled posts, replies to messages received before the stall). This matches the symptom of #45714 and the silent-no-resume failure mode of #69064, both closed in the prior week. 16:34:54.982 WARN telegram/network fetch fallback: enabling sticky IPv4-only dispatcher (codes=ETIMEDOUT,EHOSTUNREACH) 16:55:06.694 WARN telegram/network fetch fallback: enabling sticky IPv4-only dispatcher (codes=ETIMEDOUT,EHOSTUNREACH) 3. If the first deleteWebhook/getWebhookInfo call fails with ETIMEDOUT/EHOSTUNREACH, the bot should exit with a clear error so launchd can restart it cleanly, not silently retry without logging.

Root Cause

Why this looks like a regression of #45714 / #69064

  • #45714 ("provider stops polling while outbound still works"): exact symptom. Outbound to DMs continued to succeed in our log earlier today; group inbound silent.
  • #69064 ("auto-recovery sometimes completes silently without resuming polling; requires manual service restart"): we are now in the variant where MANUAL restart also doesn't resume polling, because the persisted IPv4-only-fallback flag re-engages at every startup.

Fix Action

Fix / Workaround

Repro

  1. Have a healthy gateway running with active Telegram polling.
  2. Wait for any transient network blip that causes openclaw's telegram/network layer to log fetch fallback: enabling sticky IPv4-only dispatcher (codes=ETIMEDOUT,EHOSTUNREACH).
  3. Restart the gateway (launchctl kickstart -k).
  4. Observe: at startup the IPv4-only fallback fires immediately (within ~12ms of provider start), the provider logs [default] starting provider (@ACP_openclaw_bot), and then no further telegram-subsystem activity occurs. Inbound messages sent to any group never reach the gateway.

Evidence (last telegram-subsystem lines after each of two restarts)

First restart 16:34:55 EDT:

16:34:54.982  WARN  telegram/network            fetch fallback: enabling sticky IPv4-only dispatcher (codes=ETIMEDOUT,EHOSTUNREACH)
16:34:55.664  INFO  gateway/channels/telegram   [default] starting provider (@ACP_openclaw_bot)
(no further telegram lines for 14+ minutes)

Second restart 16:55:01 EDT:

16:55:06.694  WARN  telegram/network            fetch fallback: enabling sticky IPv4-only dispatcher (codes=ETIMEDOUT,EHOSTUNREACH)
16:55:07.379  INFO  gateway/channels/telegram   [default] starting provider (@ACP_openclaw_bot)
(no further telegram lines)

Code Example

16:34:54.982  WARN  telegram/network            fetch fallback: enabling sticky IPv4-only dispatcher (codes=ETIMEDOUT,EHOSTUNREACH)
16:34:55.664  INFO  gateway/channels/telegram   [default] starting provider (@ACP_openclaw_bot)
(no further telegram lines for 14+ minutes)

---

16:55:06.694  WARN  telegram/network            fetch fallback: enabling sticky IPv4-only dispatcher (codes=ETIMEDOUT,EHOSTUNREACH)
16:55:07.379  INFO  gateway/channels/telegram   [default] starting provider (@ACP_openclaw_bot)
(no further telegram lines)

---

$ curl -4 --max-time 8 https://api.telegram.org/
302 in 347ms (DNS 4ms, connect 117ms, TLS 243ms, total 347ms)
RAW_BUFFERClick to expand / collapse

Summary

On openclaw 2026.4.27 (cbc2ba0), macOS 15 (Darwin 25.4.0), the Telegram provider logs [default] starting provider (@ACP_openclaw_bot) at startup and then never produces any further telegram-subsystem activity. No getUpdates, no inbound message events, no error. Outbound sendMessage still works for any send the agent kicks off WITHOUT requiring inbound (e.g., scheduled posts, replies to messages received before the stall). This matches the symptom of #45714 and the silent-no-resume failure mode of #69064, both closed in the prior week.

Environment

  • openclaw 2026.4.27 (cbc2ba0), installed via global npm
  • macOS 15 (Darwin 25.4.0), Apple Silicon (Mac mini)
  • Node 25.8.0
  • Service via launchd (ai.openclaw.gateway)
  • ~20 agents, multiple Telegram supergroups, two of which use forum topics

Repro

  1. Have a healthy gateway running with active Telegram polling.
  2. Wait for any transient network blip that causes openclaw's telegram/network layer to log fetch fallback: enabling sticky IPv4-only dispatcher (codes=ETIMEDOUT,EHOSTUNREACH).
  3. Restart the gateway (launchctl kickstart -k).
  4. Observe: at startup the IPv4-only fallback fires immediately (within ~12ms of provider start), the provider logs [default] starting provider (@ACP_openclaw_bot), and then no further telegram-subsystem activity occurs. Inbound messages sent to any group never reach the gateway.

Evidence (last telegram-subsystem lines after each of two restarts)

First restart 16:34:55 EDT:

16:34:54.982  WARN  telegram/network            fetch fallback: enabling sticky IPv4-only dispatcher (codes=ETIMEDOUT,EHOSTUNREACH)
16:34:55.664  INFO  gateway/channels/telegram   [default] starting provider (@ACP_openclaw_bot)
(no further telegram lines for 14+ minutes)

Second restart 16:55:01 EDT:

16:55:06.694  WARN  telegram/network            fetch fallback: enabling sticky IPv4-only dispatcher (codes=ETIMEDOUT,EHOSTUNREACH)
16:55:07.379  INFO  gateway/channels/telegram   [default] starting provider (@ACP_openclaw_bot)
(no further telegram lines)

Direct connectivity check from the same host at the time of restart:

$ curl -4 --max-time 8 https://api.telegram.org/
302 in 347ms (DNS 4ms, connect 117ms, TLS 243ms, total 347ms)

So the network is healthy; the bot's startup state machine is stuck behind a stale "sticky IPv4-only" decision.

Why this looks like a regression of #45714 / #69064

  • #45714 ("provider stops polling while outbound still works"): exact symptom. Outbound to DMs continued to succeed in our log earlier today; group inbound silent.
  • #69064 ("auto-recovery sometimes completes silently without resuming polling; requires manual service restart"): we are now in the variant where MANUAL restart also doesn't resume polling, because the persisted IPv4-only-fallback flag re-engages at every startup.

Suggested investigation

  1. Whatever persists telegram/network's IPv4-only fallback decision should expire on a TTL or be cleared on a clean SIGTERM. Right now it appears to survive across restarts, pre-empting clean retries.
  2. After [default] starting provider, the next expected lifecycle event (deleteWebhook ack / first getUpdates) should ALWAYS be logged at INFO — even on success — so users can tell the difference between "polling started" and "stuck in startup."
  3. If the first deleteWebhook/getWebhookInfo call fails with ETIMEDOUT/EHOSTUNREACH, the bot should exit with a clear error so launchd can restart it cleanly, not silently retry without logging.

Workaround used (none worked permanently)

  • Two launchctl kickstart -k restarts, ~20 minutes apart, both reproduced the same silent-stuck state.

Happy to attach the full /tmp/openclaw/openclaw-2026-04-30.log if useful (~4MB; I'll redact session content if requested).

extent analysis

TL;DR

The most likely fix is to modify the telegram/network layer to expire or clear the IPv4-only fallback decision on restart, preventing it from surviving across restarts and pre-empting clean retries.

Guidance

  • Investigate the persistence mechanism of the IPv4-only fallback decision and consider implementing a TTL or clearing it on a clean SIGTERM.
  • Modify the logging to include the next expected lifecycle event after [default] starting provider at the INFO level, allowing users to distinguish between "polling started" and "stuck in startup".
  • Consider exiting the bot with a clear error if the first deleteWebhook/getWebhookInfo call fails with ETIMEDOUT/EHOSTUNREACH, enabling launchd to restart it cleanly.

Notes

The issue appears to be a regression of previously closed issues #45714 and #69064, and the suggested investigation steps should help identify the root cause.

Recommendation

Apply a workaround to clear the IPv4-only fallback decision on restart, as the issue is likely related to the persistence of this decision across restarts.

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…

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] 2026.4.27 regression: Telegram provider logs "starting" but never begins long-poll; inbound silently dropped, outbound still works (regression of #45714 / #69064) [3 comments, 2 participants]