Routine builder generates sub-hourly cron then silently disables Create with no error

Open 💬 0 comments Opened Jul 16, 2026 by joncass

Summary

When creating a Routine (scheduled cloud agent), the natural-language description step will happily generate a sub-hourly cron expression (e.g. */10 * * * *) even though routines enforce a 1-hour minimum interval. The invalid schedule is then silently rejected at the end: the Create button is disabled with no explanation, and there is no inline error telling the user the schedule is the problem. The result is a dead-end — the user has a fully filled-out form that can never be submitted and no indication why.

Environment

  • App: Claude Desktop for macOS (Code tab → Routines)
  • Feature: Routine builder, schedule trigger

Steps to reproduce

  1. Create a new Routine.
  2. Describe the routine in natural language such that it implies a frequent cadence (e.g. "run every 10 minutes").
  3. The builder generates a cron trigger of */10 * * * * (every 10 minutes) without objecting.
  4. Fill in the rest of the form (name, instructions, repo, connector) — everything is valid.
  5. The Create button remains disabled, with no message explaining why.

Expected

Either:

  • The natural-language → cron step should clamp to or warn about the 1-hour minimum instead of emitting a cron it knows can never be created; and/or
  • The disabled Create button should surface an inline validation error on the trigger field (e.g. "Minimum interval is 1 hour — this schedule runs more frequently and will be rejected"), so the user knows what to fix.

Actual

  • The NL step produces */10 * * * * with no warning.
  • Create is silently disabled. No inline error identifies the trigger as the blocker. The user has to already know about the 1-hour minimum to diagnose it.

Notes

Two separate gaps here, either of which would resolve the dead-end:

  1. Generation — the NL parser doesn't respect the schedule's own minimum-interval constraint.
  2. Validation feedback — the form disables Create without telling the user which field is invalid or why.

The 1-hour minimum itself is documented (https://code.claude.com/docs/en/routines#add-a-schedule-trigger); the issue is that neither the generator nor the form's error surface reflects it.

View original on GitHub ↗