[BUG] sessions_send from isolated cron jobs always times out - no message delivery

Resolved 💬 2 comments Opened Mar 23, 2026 by Cuttingwater Closed Mar 26, 2026

Bug Description

sessions_send called from isolated cron job sessions consistently times out, regardless of model used. The tool call initiates but never completes within reasonable timeouts.

Environment

  • OpenClaw v2.3.17
  • macOS 15.3.0 (arm64)
  • Node v25.8.1

Reproduction Steps

  1. Create a cron job with sessionTarget: "isolated" and payload.kind: "agentTurn"
  2. The job's task includes calling sessions_send to forward a message to the main session
  3. Trigger the job manually or wait for schedule

Expected Behavior

sessions_send completes and delivers the message to the target session.

Actual Behavior

The tool call times out. The cron job summary reports variations of:

  • "Forward message timed out, but escalation was initiated"
  • "Session send timed out... main session unavailable"
  • "The send timed out waiting for a response, but the message was delivered"

No message is actually delivered to the target session (sessions_history shows empty).

Testing Done

Tested with multiple models to rule out model capability:

| Model | Job Duration | Result |
|-------|-------------|--------|
| qwen3.5:9b | 78s | Timeout, no delivery |
| qwen3.5:35b-a3b | 91s | Timeout, no delivery |
| claude-sonnet-4 | 50s | Timeout, no delivery |

All models successfully:

  • Run exec tools (scripts)
  • Parse output
  • Chain multiple tool calls
  • Attempt sessions_send (tool is invoked)

But sessions_send specifically never completes.

Cron Job Config

{
  "sessionTarget": "isolated",
  "payload": {
    "kind": "agentTurn",
    "message": "Run script, if [ESCALATE] marker found, use sessions_send to forward to main session",
    "timeoutSeconds": 300,
    "model": "anthropic/claude-sonnet-4-20250514"
  }
}

Workaround

File-based escalation (write to disk, main session checks on heartbeat) works but loses the real-time notification benefit.

Impact

Prevents isolated cron agents from coordinating with the main session, limiting autonomous workflows to fire-and-forget patterns only.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗