solution gateway high macos linux windows telegram

Cron: jobs run but Telegram announce delivery fails (no notification sent)

If isolated cron jobs execute successfully but the Telegram notification never arrives ("cron announce delivery failed"), disable announce and send via the message tool, or switch delivery mode while you capture gateway logs for the failing announce path.

By CoClaw Team •

Symptoms

  • Your cron jobs execute normally (facts extraction, summaries, etc.).
  • But jobs configured with delivery announce to Telegram do not arrive.
  • You may see an error state like cron announce delivery failed in cron run status / UI.
  • Manual Telegram messaging still works (for example via the message tool or direct Bot API tests).

Cause

OpenClaw cron has multiple output paths:

  • delivery.mode = "announce": cron delivers the run’s outbound payloads directly via the channel adapters.
  • delivery.mode = "none": cron does not deliver; you can send messages yourself inside the run.
  • delivery.mode = "webhook": cron posts the finished event to your endpoint.

When only announce fails, it usually indicates a problem in the announce delivery pipeline (target parsing/routing, channel adapter send, or a regression in the cron announce path), not a general Telegram connectivity problem.

Fix

1) Fastest workaround: turn off announce and send via message inside the job

Edit the job to disable announce:

openclaw cron edit <job-id> --no-deliver

Then update your cron prompt to send the message explicitly (example idea):

  • Generate the content
  • Call message.send to your Telegram target

Why this helps: docs note that announce delivery suppresses messaging tool sends for the run. With delivery.mode = "none", you regain full control of outbound messages.

2) If you want delivery without chat adapters: use webhook mode

If you have an HTTP endpoint that forwards to Telegram (or logs results), switch the job:

openclaw cron edit <job-id> --webhook --to "https://example.com/openclaw/cron"

3) Capture the failing announce error from gateway logs

On the gateway host:

openclaw logs --follow | rg -i "cron|announce|telegram|deliver|sendMessage|error"

And verify Telegram is configured and probe-able:

openclaw channels status --probe telegram

If you can paste the announce-related error lines (redacting tokens), it will usually show whether this is a target parsing issue or an adapter send failure.

Verify

  • Wait for the next scheduled run
  • Confirm one of:
    • The job delivers via your explicit message.send path (with --no-deliver), or
    • The webhook endpoint receives the payload (with delivery.mode = "webhook")
  • CoClaw: Cron runs but never fire (different symptom): /troubleshooting/solutions/cron-jobs-not-firing-next-run-advances/
  • CoClaw: Cron announce delivers only a summary (different symptom): /troubleshooting/solutions/cron-announce-sends-summary-instead-of-full-output/

Verification & references

  • Reviewed by:CoClaw Code Team
  • Last reviewed:March 14, 2026
  • Verified on: macOS · Linux · Windows
Want to explore more? Browse all solutions or ask in the Community Forum .
Report a problem

Related Resources