[BUG] Scheduled task cron dispatch silently fails to fire — no lastRunAt, no execution, no error

Status Open
Reported on v2.1.231
Maintainer reply None cached
Activity 0 comments · opened Aug 27, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Description:

A recurring scheduled task (live-leads-daily-plastic-mfg, cronExpression: "0 7 1-5", weekdays 7:04 AM local) has failed to fire on at least 3 consecutive weekdays (Aug 25, 26, 27 2026), confirmed by:

The task's lastRunAt field never updated across all 3 days, even hours after the scheduled time passed.
nextRunAt correctly advanced to the following weekday each time, implying the scheduler believes the prior slot was handled — but no corresponding execution occurred.
Real side effects the task would produce (Google Sheet rows, CRM API calls, email sends) never appeared for those dates until I manually re-ran the task's logic myself in chat.
I also tested a manual one-time fireAt override (via update_scheduled_task) set ~1 minute in the future — this also never fired. nextRunAt stayed frozen at the fireAt value with no lastRunAt appearing even 25+ minutes later. This suggests the issue isn't specific to cron parsing — the dispatch mechanism itself isn't triggering execution, for both recurring and one-time schedules.
No error was ever surfaced to the user or in any tool response — the failure is completely silent.

What Should Happen?

Expected: The task should fire at its scheduled time (or shortly after, given documented jitter), and any dispatch failure should be visibly surfaced rather than silently skipped.

Impact: A user relying on this for unattended daily automation had no way to know the task wasn't running except by manually cross-checking downstream side effects each day.

Error Messages/Logs

Steps to Reproduce

  1. Create a scheduled task with a recurring cron schedule (e.g. "0 7 1-5") using the scheduled-tasks tools.
  2. Let the scheduled fire time pass.
  3. Call list_scheduled_tasks — lastRunAt never updates, even hours after the scheduled time.
  4. Confirm via side effects (e.g. no API calls made, no files written) that the task's prompt never actually executed.
  5. As a second test, set a one-time fireAt ~1 minute in the future via update_scheduled_task.
  6. That one-time fire also never occurs — nextRunAt stays frozen at the fireAt value, lastRunAt never appears, even 25+ minutes later.

Claude Model

Sonnet (default)

Is this a regression?

No, this never worked

Last Working Version

2.1.231

Claude Code Version

2.1.231

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Windows Terminal

Additional Information

  1. Create a scheduled task with a recurring cron schedule (e.g. "0 7 1-5") using the scheduled-tasks tools.
  2. Let the scheduled fire time pass.
  3. Call list_scheduled_tasks — lastRunAt never updates, even hours after the scheduled time.
  4. Confirm via side effects (e.g. no API calls made, no files written) that the task's prompt never actually executed.
  5. As a second test, set a one-time fireAt ~1 minute in the future via update_scheduled_task.
  6. That one-time fire also never occurs — nextRunAt stays frozen at the fireAt value, lastRunAt never appears, even 25+ minutes later.

View original on GitHub ↗