[BUG] Editing a scheduled task's permission mode via the "Edit routine" UI silently wipes one-time (fireAt) schedules (cron tasks unaffected)
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
fireAtfor one-time tasks, the same way it already preservescronExpressionfor 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
- Create a one-time scheduled task via
create_scheduled_taskwith a futurefireAt, e.g.:
create_scheduled_task({ taskId: "test-oneshot", fireAt: "2026-07-22T09:00:00-03:00", prompt: "...", description: "..." })
- (Control) Create a recurring task the same way with
cronExpression: "0 8 * * *"instead offireAt. - Confirm both are alive via
list_scheduled_tasks— both showenabled: truewith the correctnextRunAt/fireAt/cronExpression. - In the app sidebar, open the Scheduled/Routines section, find the one-time task, click Edit ("Editar rotina").
- 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.
- Repeat step 5 on the recurring task (only toggle auto-approve/model, save).
- Call
list_scheduled_tasksagain.
Observed:
- Recurring task: unchanged —
enabled: true,cronExpressionintact,nextRunAtstill populated. - One-time task:
"schedule": "Manual only","enabled": false, thefireAtfield 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).
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗