[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).
3 Comments
One boundary I would make test-visible here is that schedule intent and execution/permission policy should be independent persisted fields.
For an edit to a routine, I would want a small update receipt before save:
The negative control is exactly this repro: edit only permission mode and/or model on a one-time routine. The one-time fireAt should survive the save the same way cronExpression survives for recurring routines. If the UI cannot represent one-time schedules yet, it should render the existing fireAt as read-only and either preserve it or block save before silently converting the routine to manual-only.
That keeps "this run is approved to execute automatically" separate from "this run is still scheduled to happen." Changing the permission mode should not delete the pending execution intent unless the user explicitly changed the schedule.
I have not tested Claude Desktop or verified the source locally. This is only a state-boundary/test-shape pass on the issue as described.
Hi,
This has been fixed and will be live shortly.
Thank you for reporting!
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.