CronCreate session-scoped jobs never fire even when REPL is idle (2.1.111 desktop app)

Resolved 💬 1 comment Opened Apr 20, 2026 by bigmichcio Closed May 27, 2026

Bug

Session-scoped CronCreate jobs (default durable: false) do not fire within the active session, even when the REPL is idle.

The tool schema documents: "Jobs only fire while the REPL is idle (not mid-query)" - but empirical evidence shows jobs never fire even across long idle periods (session waiting for user, no active work, no pending tool calls).

Reproduction

  1. Open Claude Code desktop app (2.1.111 on Windows 11)
  2. Call CronCreate with a near-future one-shot:
{
  "cron": "5 20 23 4 *",
  "prompt": "ping",
  "recurring": false
}
  1. Tool returns "Session-only (not written to disk, dies when Claude exits)" - expected for durable: false
  2. Leave session idle (no prompts, no tool calls) past the scheduled time
  3. Job never fires - no output, no notification, nothing appears in the session

Expected

At the scheduled time, while REPL is idle, the scheduled prompt should fire and produce model output in the current session (per documented CronCreate behavior).

Additional observations

  • .claude/scheduled_tasks.lock is created when CronCreate is called
  • .claude/scheduled_tasks.json is never written, even with durable: true (see #40228)
  • Issue persists for ~7 days across many sessions
  • Desktop app reports "You are running the latest version" at 2.1.111 (CLI is already 2.1.114)
  • Problem affects both durable: false (this issue) and durable: true (#40228)

Environment

  • Claude Code desktop app 2.1.111
  • Windows 11
  • Model: Claude Opus 4.7 (1M context)
  • Multiple CWDs tested (gadki + programming sessions)

Related

  • #40228 - durable: true flag ignored, scheduled_tasks.json never written
  • #44128 - desktop app lifecycle blocking scheduled tasks

Workaround

None found that fires in the current session. mcp__scheduled-tasks__create_scheduled_task works but spawns a new session instead of firing in the current one - not a substitute for in-session scheduling.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗