Scheduled task: scheduler skips runs / reports success (lastRunAt updates) with no session or output produced
Feature: Scheduled Tasks (mcp__scheduled-tasks, weekday cron e.g. \30 6 * * 1-5\), Claude Code desktop app (Code tab), macOS.
Summary: Over roughly two weeks of a daily weekday-recurring scheduled task, I observed two distinct scheduler-level reliability problems (separate from ordinary execution-time failures like a crashed tool call, which I understand and am not reporting here):
- Silently skipped day: On at least one scheduled weekday, no session was ever created for that morning's run — it appears the scheduler simply did not fire, with no error or notification anywhere.
- Ghost success: On another occasion,
list_scheduled_tasksshowedlastRunAthad advanced to that morning's timestamp (implying the run completed), but:
- No session/transcript exists anywhere in session history for that run.
- None of the task's actions (which include sending a Slack message as a final step) were ever executed — nothing was produced.
This second case is the more concerning one: it means lastRunAt cannot be trusted as evidence that a scheduled run actually happened, and because the scheduler's own bookkeeping says "success," there's no failure signal surfaced to the user at all — you only find out by manually auditing session history against the expected output.
Impact: A user relying on a scheduled task (e.g. a recurring digest/report) has no reliable way to know a run silently didn't happen, since both the absence of a session and a false-positive lastRunAt are invisible without manual investigation.
What I'd find helpful: Any way to expose actual per-run execution status/logs from the scheduler backend (distinct from the task's own session transcript), so lastRunAt reflects "a session was actually created and ran" rather than being set independent of that.
Happy to provide specific timestamps/task IDs if useful for correlating against backend scheduler logs — didn't want to include them inline here since this is a public repo.