Skip to content

[Bug] Isolated cron jobs cannot deliver to Telegram: 'Outbound not configured' error #14266

@SunDevilATB

Description

@SunDevilATB

Bug Description

Isolated cron jobs with delivery.mode: "announce" fail to deliver to Telegram with "Unsupported channel: telegram" error, even though Telegram works fine in the main session.

Environment

  • OpenClaw Version: 2026.2.9
  • OS: macOS 15.7.3 (ARM64)
  • Node: v25.5.0
  • Channel: Telegram (works in main session)

Steps to Reproduce

  1. Create an isolated cron job with Telegram delivery:
{
  "name": "morning-brief",
  "schedule": { "kind": "cron", "expr": "45 5 * * *", "tz": "America/Phoenix" },
  "payload": {
    "kind": "agentTurn",
    "message": "Generate a morning brief..."
  },
  "sessionTarget": "isolated",
  "delivery": {
    "mode": "announce",
    "channel": "telegram",
    "to": "6940347212",
    "bestEffort": true
  },
  "enabled": true
}
  1. Let the job run (or trigger manually with cron run)

  2. Observe the error in job runs

Expected Behavior

The isolated cron job should deliver its output to Telegram via the delivery.announce mechanism, just as the main session can send messages to Telegram.

Actual Behavior

Job execution fails with:

Error: Request failed with status 404
    at MessagingProvider.request (file:///.../messaging-provider.js:...)
    ...
  responseBody: {
    ok: false,
    error_code: 404,
    description: 'Not Found',
    targetState: 'UNSUPPORTED_CHANNEL'
  }

Full error from job run:

Failed to deliver run result: Error: Unsupported channel: telegram
Error: Request failed with status 404
    at MessagingProvider.request (file:///opt/homebrew/lib/node_modules/openclaw/esm/platform/providers/messaging-provider.js:215:13)
    ...
  errorInfo: {
    kind: 'not_found_error',
    statusCode: 404,
    targetState: 'UNSUPPORTED_CHANNEL',
    internal: false
  }

Key Observations

  1. Main session Telegram works: Regular chat via Telegram functions normally — the bot token and config are valid
  2. Isolated sessions fail: Only cron jobs with sessionTarget: "isolated" fail to deliver to Telegram
  3. Channel adapter not found: The error suggests the gateway's cron runner cannot access the Telegram channel adapter, even though it's configured and working for the main session
  4. Config validation passes: openclaw gateway status shows Telegram as configured; no errors in gateway startup

Workarounds Attempted

  • ✅ Removed explicit model fields from cron payloads (fixed the "model not allowed" error from 2026.2.9's stricter enforcement)
  • ❌ Telegram delivery still fails with the same "Unsupported channel" error
  • ❌ Tried delivery.bestEffort: true — job still fails

Related Issues

Suggested Fix

The gateway's cron runner for isolated sessions should have access to the same channel adapters as the main session, or the delivery mechanism should route through the main session's channel infrastructure.

Additional Context

  • 23 cron jobs affected (morning brief, workday check-ins, walter-watcher, etc.)
  • Current workaround: Delivery fails silently with bestEffort: true, but we lose the announce summary entirely
  • Alternative considered: Routing delivery through iCloud file sync to another agent instance, but that's high latency (~5 min) and hacky

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions