[BUG] Editing a scheduled task's permission mode via the "Edit routine" UI silently wipes one-time (fireAt) schedules (cron tasks unaffected)

Resolved 💬 2 comments Opened Jul 8, 2026 by joaonogueira-triad Closed Jul 10, 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?

Editing a scheduled task through the "Edit routine" ("Editar rotina") dialog in the sidebar — even when the only change made is toggling the permission mode to "Modo automático" (auto-approve) and/or picking a model, with no change to the schedule itself — silently discards the task's one-time fireAt timestamp on save, resetting the task to "schedule": "Manual only" / "enabled": false.

This only affects one-time (fireAt) tasks. A recurring (cronExpression) task edited the exact same way (same dialog, same auto-approve toggle, same save action) is completely unaffected and keeps firing on schedule with its cronExpression/nextRunAt intact.

The dialog gives no warning that saving will wipe the one-time trigger, and its schedule selector doesn't expose a "one-time" option to re-set afterward (only Manual / Hourly / Daily / Weekdays / Weekly / Custom) — so once wiped through the UI, a one-time task can't be restored through the UI at all. It has to be re-armed by calling update_scheduled_task with fireAt from an assistant/tool session.

What Should Happen?

Editing a task's execution/permission settings (auto-approve mode, model) should have no side effect on its trigger configuration:

  • Saving the dialog should preserve an existing fireAt for one-time tasks, the same way it already preserves cronExpression for recurring tasks.
  • If the dialog genuinely can't represent a one-time schedule, it should at minimum (a) show a read-only "runs once at <timestamp>" indicator so the value isn't silently discarded, or (b) warn before save that continuing will convert the task to manual-only and require it to be rescheduled via the tool.

Error Messages/Logs

None shown in the UI — the save appears to succeed silently with no warning. The only evidence of the change is the task's state via `list_scheduled_tasks` before/after (see Steps to Reproduce).

Steps to Reproduce

  1. Create a one-time scheduled task via create_scheduled_task with a future fireAt, e.g.:
create_scheduled_task({ taskId: "test-oneshot", fireAt: "2026-07-22T09:00:00-03:00", prompt: "...", description: "..." })
  1. (Control) Create a recurring task the same way with cronExpression: "0 8 * * *" instead of fireAt.
  2. Confirm both are alive via list_scheduled_tasks — both show enabled: true with the correct nextRunAt / fireAt / cronExpression.
  3. In the app sidebar, open the Scheduled/Routines section, find the one-time task, click Edit ("Editar rotina").
  4. In the dialog, change only the permission-mode dropdown to "Modo automático" (auto-approve) — do not touch Name/Description/Instructions/schedule. Optionally also pick a specific model. Click Save.
  5. Repeat step 5 on the recurring task (only toggle auto-approve/model, save).
  6. Call list_scheduled_tasks again.

Observed:

  • Recurring task: unchanged — enabled: true, cronExpression intact, nextRunAt still populated.
  • One-time task: "schedule": "Manual only", "enabled": false, the fireAt field is gone entirely from the tool output.

Workaround found: calling update_scheduled_task({ taskId: "test-oneshot", fireAt: "<same original ISO timestamp>" }) re-arms the one-time task (enabled: true again, correct nextRunAt restored) without reverting the auto-approve/model settings just chosen via the UI — verified by reopening the Edit dialog afterward and confirming "Modo automático" and the chosen model were still set. So the permission/model settings and the trigger schedule appear to live in independent state that a tool-based update_scheduled_task call doesn't clobber, but the UI dialog's save handler does clobber — specifically and only — the one-time trigger.

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

1.17377.1 (Claude Desktop app)

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

Other

Additional Information

Reproduced entirely through the Claude Desktop GUI ("Rotinas"/Scheduled section → Edit routine dialog), not a terminal-driven repro.

Adjacent to but distinct from #72710 (one-time/cron tasks never firing at all from creation — different symptom, backing SKILL.md file never persisted) and #61456 (missing sidebar/"Run now" button) — filing separately since the root cause and repro here are specific: the task fires and persists fine, and is only destroyed when edited through the "Edit routine" dialog for an unrelated reason (permission mode / model).

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗