openclaw - 💡(How to fix) Fix [Bug] Isolated cron sessions still cannot deliver to Telegram on v2026.3.28 [1 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#57867Fetched 2026-04-08 01:56:40
View on GitHub
Comments
0
Participants
1
Timeline
0
Reactions
0
Author
Participants

Error Message

  • Telegram outbound adapter loads at gateway startup and works initially
  • After ~12h the adapter silently dies (possibly due to IPv6 ETIMEDOUT/ENETUNREACH on NAT-only VM)
  • All isolated cron deliveries fail with Outbound not configured for channel: telegram
  • Jobs with bestEffort: true report ok + delivered: false; jobs without it go to error state
  • Gateway process stays alive — systemd sees no problem
  • openclaw doctor reports Telegram: ok even while deliveries are failing
  • On gateway restart, delivery-recovery successfully delivers pending messages

Root Cause

PR #19174 improved observability (errors are now visible instead of silent), but the root cause — resolveOutboundTarget() returning {ok: false} for isolated sessions — appears unchanged.

Fix Action

Workaround

Changed all cron jobs from sessionTarget: "isolated" to sessionTarget: "session:cron-<job-name>" (named sessions). Named sessions have access to the gateway's outbound context. No delivery failures since the change.

RAW_BUFFERClick to expand / collapse

Related: #14743, #14266

Still reproducible on v2026.3.28 (f9b1079) running on GCP e2-small (Ubuntu 24.04, no public IP, Cloud NAT for outbound).

Setup

10 cron jobs with sessionTarget: "isolated" and delivery: { mode: "announce", channel: "telegram", to: "<userId>" }. Telegram channel is enabled and works fine in the main session (DMs, heartbeat target).

Observed behavior

  • Telegram outbound adapter loads at gateway startup and works initially
  • After ~12h the adapter silently dies (possibly due to IPv6 ETIMEDOUT/ENETUNREACH on NAT-only VM)
  • All isolated cron deliveries fail with Outbound not configured for channel: telegram
  • Jobs with bestEffort: true report ok + delivered: false; jobs without it go to error state
  • Gateway process stays alive — systemd sees no problem
  • openclaw doctor reports Telegram: ok even while deliveries are failing
  • On gateway restart, delivery-recovery successfully delivers pending messages

Workaround

Changed all cron jobs from sessionTarget: "isolated" to sessionTarget: "session:cron-<job-name>" (named sessions). Named sessions have access to the gateway's outbound context. No delivery failures since the change.

Notes

PR #19174 improved observability (errors are now visible instead of silent), but the root cause — resolveOutboundTarget() returning {ok: false} for isolated sessions — appears unchanged.

extent analysis

Fix Plan

To resolve the issue of Telegram outbound adapter silently dying after ~12 hours, we need to ensure that isolated cron jobs have access to the gateway's outbound context.

Here are the steps to fix the issue:

  • Change the sessionTarget of all cron jobs from "isolated" to a named session, e.g., "session:cron-<job-name>".
  • This will allow the cron jobs to access the gateway's outbound context and prevent the Telegram adapter from dying.

Example code snippet:

// Before
{
  "sessionTarget": "isolated",
  "delivery": {
    "mode": "announce",
    "channel": "telegram",
    "to": "<userId>"
  }
}

// After
{
  "sessionTarget": "session:cron-my-job",
  "delivery": {
    "mode": "announce",
    "channel": "telegram",
    "to": "<userId>"
  }
}

Verification

To verify that the fix worked:

  • Restart the gateway and check that the Telegram adapter is loaded and working correctly.
  • Run the cron jobs and check that they are delivering messages successfully.
  • Monitor the gateway logs for any errors related to the Telegram adapter or outbound deliveries.

Extra Tips

  • Make sure to update all cron jobs to use named sessions to prevent similar issues in the future.
  • Consider implementing additional logging and monitoring to detect and respond to similar issues promptly.

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