Scheduled tasks stall silently on permission prompts (no error, no notification); related unattended-run gaps

Status Fixed / completed
Maintainer reply None cached
Activity 4 comments · opened Jul 10, 2026 · closed Jul 14, 2026

Summary

Scheduled tasks (desktop "Routines") stall silently when a run hits a permission prompt: the run's transcript simply ends after the tool_use with no tool_result, no error is surfaced to the model or the user, and notifyOnCompletion: true never fires. From the user's perspective the run just "died". We burned 3 scheduled runs (and hours of a paying Max user's time, on Fable 5 with heavy token consumption) diagnosing what turned out to be documented pause-on-permission behavior, because nothing in the product surfaced it.

Environment

  • Claude Code desktop app on macOS (Darwin 25.5.0), Japanese UI
  • Model: claude-fable-5 / claude-opus-4-8
  • Scheduled tasks created via mcp__scheduled-tasks__create_scheduled_task

Issues

  1. Silent stall on permission prompts in scheduled runs. A Bash call needing approval pauses the run, but: the paused state is not communicated (no notification, no entry in the run transcript, task shows lastRunAt as if completed). Expected: surface "paused waiting for approval" to the task list, fire a notification, or (better) allow the model to receive an auto-deny with an explanation so it can report and finish.
  2. notifyOnCompletion: true never notified for stalled runs (and their eventual termination). Subscriber session received nothing for 3 runs.
  3. No permissionMode / model parameters on create_scheduled_task MCP tool. Docs say tasks have a per-task permission mode and recommend DontAsk for unattended use, but the MCP tool cannot set it; it can only be set in the UI form. Same for model — unattended runs picked Sonnet while the project settings say "model": "opus" (project model setting appears to be ignored by scheduled runs).
  4. Docs/UI terminology mismatch (i18n): docs and tool descriptions say the "Scheduled" sidebar section; the Japanese UI calls it 「ルーチン」. Cost us a round of confusion.
  5. claude-in-chrome upload_image fails with Unable to access message history to retrieve image in desktop sessions (tested twice with fresh screenshot imageIds) — this breaks the documented capture→upload bridge.
  6. screenshot/zoom save_to_disk saves to a path unreachable from the session (not under the project, scratchpad, or any Bash-readable location; the result did not include the saved path either). If save_to_disk is meant for user-message attachments only, the tool description should say so explicitly.

Impact

An automation-heavy user (daily unattended content pipeline) spent an evening and a large token budget on trial-and-error that better error surfacing would have prevented. Please prioritize (1)–(3): unattended workflows are a headline feature, and silent stalls undermine trust in them.

View original on GitHub ↗

4 Comments

github-actions[bot] · 3 months ago

Found 3 possible duplicate issues:

  1. https://github.com/anthropics/claude-code/issues/74103
  2. https://github.com/anthropics/claude-code/issues/68106
  3. https://github.com/anthropics/claude-code/issues/74930

This issue will be automatically closed as a duplicate in 3 days.

  • If your issue is a duplicate, please close it and 👍 the existing issue instead
  • To prevent auto-closure, add a comment or 👎 this comment

🤖 Generated with Claude Code

hiishida-beep · 3 months ago

Additional verification for issue #5/#6 (tested live, desktop app, claude-fable-5):

  • mcp__claude-in-chrome__computer with action: screenshot, save_to_disk: true returns only the imageId ("Successfully captured screenshot (1311x906, jpeg) - ID: ss_...") — no saved path in the result, despite the parameter description promising "Returns the saved path in the tool result". A filesystem-wide search (app support, caches, ~/.claude, Downloads, Desktop, /tmp, /private/var/folders) finds no file created.
  • upload_image with a fresh imageId from the same session consistently fails with Unable to access message history to retrieve image (3 attempts across 2 sessions).

Net effect: there is no working path from an in-browser capture to a file or a page upload in this environment, forcing OS-level screenshot workarounds. Note this is not a permissions issue — no permission prompt is ever raised for either call.

MaxLeiter · 3 months ago

Thanks for reporting, this will be fixed next release.

github-actions[bot] · 1 month ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.