Skip to content

[BUG] Cowork Scheduler Issue #66976

Description

@kevinfitzpatrick

Preflight Checklist

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

What's Wrong?

Preflight Checklist

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

What's Wrong?

All scheduled tasks in Cowork stopped executing on May 27, 2026 and have not run since — despite the desktop app, Chrome, and the Claude in Chrome extension all remaining open and active. A full quit-and-relaunch of the Cowork app on June 10 did not resolve the issue or trigger any catch-up runs.


Environment

  • Claude Desktop version: Version 1.11847.5 (9692f0)
  • Windows version: Windows 11 Home version 25H2, build 26200.8655)
  • Platform: Windows (desktop Cowork app)
  • Affected since: 2026-05-27
  • Reported: 2026-06-10

Affected Tasks

All three scheduled tasks are affected regardless of their schedule:

Task ID Cron lastRunAt (frozen) nextRunAt behavior
daily-email-digest 45 5 * * * (every day, 5:53 AM) 2026-05-27T09:53:37.603Z Recalculates to "tomorrow" on every check, never fires
daily-tiller-refresh 15 5 * * 2-6 (Tue–Sat, 5:15 AM) 2026-05-27T09:16:31.259Z Recalculates to "tomorrow" on every check, never fires
monitor-tiller-refresh 0 6 * * 2-6 (Tue–Sat, 6:02 AM) 2026-05-27T10:02:38.475Z Recalculates to "tomorrow" on every check, never fires

Notably, daily-email-digest fires every single day and has not run in ~2 weeks — this rules out the issue being specific to one task's cron expression or SKILL.md content.


Key Observations

  1. lastRunAt is frozen at near-identical timestamps for all three tasks, all within ~46 minutes of each other on 2026-05-27. This strongly suggests a single shared scheduler state/checkpoint got stuck at that moment, rather than three independent failures.

  2. nextRunAt is computed live and updates correctly every time list_scheduled_tasks is called — but this appears to be display-only. The underlying trigger mechanism never actually fires.

  3. No new sessions are created for any scheduled task since May 27 (confirmed via list_sessions — the last "Daily tiller refresh," "Daily email digest," and "Monitor tiller refresh" sessions are all dated May 27 or earlier).

  4. A full quit-and-relaunch of the Cowork app on 2026-06-10 did not trigger any catch-up runs, even though the create_scheduled_task documentation states: "Scheduled tasks run while this app is open. If the app is closed when a task is due, it runs on next launch." This suggests either (a) the catch-up mechanism is broken, or (b) the scheduler's persisted state didn't reset on relaunch.

  5. Toggling enabled off and back on via update_scheduled_task does not fix it — only recalculates nextRunAt, with no effect on lastRunAt or actual firing.

  6. Updating cronExpression via update_scheduled_task also has no effect on the frozen state.


Timeline / What We Ruled Out

  • 2026-05-27: A session called update_scheduled_task to update daily-tiller-refresh's prompt/SKILL.md content. This is the last moment any task successfully ran. It's possible (but unconfirmed) that this update call coincided with or triggered the freeze.

  • The scheduled task SKILL.md files live on a NextCloud-synced D: drive (D:\NextCloud\Documents\Claude\Scheduled), while Cowork's session storage is on C: (C:\Users\kevin\AppData\Roaming\Claude\Scheduled). Hard-linking across drives raises EXDEV: cross-device link not permitted on Windows. A directory junction was created to resolve this (D:\NextCloud\Documents\Claude\Scheduled → junction → C:\Users\kevin\AppData\Roaming\Claude\Scheduled). This junction was already in place when checked on 2026-06-10 (created ~2026-05-31), but the scheduler freeze persisted for the 10 days since — so this was not the sole root cause.

  • A Windows Task Scheduler entry ("Launch Cowork (Wake)") wakes the PC and launches Cowork at 5:10 AM, but was only configured for Tuesday–Friday (missing Saturday). This has been corrected to Tue–Sat, but does not explain the daily-email-digest failures (every day, including weekdays).


Questions for the Team

  • Is there a persisted "last scheduler tick" or similar checkpoint that could get stuck and not advance even across app restarts?
  • Does the "runs on next launch if missed" catch-up behavior actually exist and function? If so, why didn't relaunching on 2026-06-10 trigger 3 overdue runs?
  • Could the update_scheduled_task call on 2026-05-27 — which edits a SKILL.md file behind a NextCloud-synced directory junction — have caused a write/lock error that silently corrupted scheduler state for all tasks, not just the one being edited?
  • Is there a log file or diagnostic the user could retrieve to show what (if anything) the scheduler attempted at 5:15 AM / 5:53 AM / 6:02 AM on any day since May 27?

Suggested Labels

area:cowork · bug · platform:windows

What Should Happen?

Scheduled tasks should fire at their next scheduled time after any app launch — including catching up on missed runs per the documented behavior: "If the app is closed when a task is due, it runs on next launch."
lastRunAt should advance each time a task executes — it should never remain frozen across days/weeks while the app is running.
update_scheduled_task (including edits to prompt/SKILL.md content, cron expression, or enabled state) should not affect the scheduler's tick state for any task, including tasks not being edited.
The scheduler should be resilient to file system conditions (e.g., write errors on a synced or junctioned directory) — any such error should be surfaced as a task-level failure, not silently corrupt the global scheduler state.

Error Messages/Logs

Steps to Reproduce

⚠️ The exact trigger is not confirmed. The steps below describe what occurred immediately before the freeze, not a verified minimal reproduction.

Have two or more scheduled tasks active in Cowork on Windows.
Store scheduled task SKILL.md files on a secondary drive that is cloud-synced (in this case, NextCloud on D:).
With at least one task having run successfully that morning, call update_scheduled_task to edit a task's prompt or SKILL.md path — where the SKILL.md lives on the synced drive.
Observe that all scheduled tasks stop firing from that point forward, including tasks that were not modified.

To confirm the bug is present (without knowing the original trigger):

Open Cowork with at least one enabled scheduled task whose nextRunAt is in the past.
Confirm via list_sessions that no new session has been created for that task.
Quit and fully relaunch the Cowork app.
Confirm via list_sessions that no catch-up session was created on relaunch.

Claude Model

Sonnet (default)

Is this a regression?

I don't know

Last Working Version

No response

Claude Code Version

2.1.170

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Windows Terminal

Additional Information

cowork-scheduler-bug-report.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions