hashicorp/nomad · error
cron.end must contain %d fields
Error message
cron.end must contain %d fields
What it means
Returned by TaskSchedule.Validate when the cron.end expression does not have exactly 2 space-separated fields. End expressions are partial crons (hour minute); a different field count cannot be completed into a valid schedule.
Source
Thrown at nomad/structs/task_sched.go:80
Cron *TaskScheduleCron
}
func (t *TaskSchedule) Validate() error {
if t.Cron == nil {
return errors.New("must specify cron block")
}
const (
startFields = 6
endFields = 2
restrictedChars = "/,"
)
if strings.Count(t.Cron.Start, " ") != (startFields - 1) {
return fmt.Errorf("cron.start must contain %d fields", startFields)
}
if strings.Count(t.Cron.End, " ") != (endFields - 1) {
return fmt.Errorf("cron.end must contain %d fields", endFields)
}
if strings.ContainsAny(t.Cron.Start, restrictedChars) {
return fmt.Errorf("cron.start must not contain %q", restrictedChars)
}
if strings.ContainsAny(t.Cron.End, restrictedChars) {
return fmt.Errorf("cron.end must not contain %q", restrictedChars)
}
return nil
}
func (t *TaskSchedule) Next(from time.Time) (start, end time.Duration, err error) {
return t.Cron.Next(from)
}
type TaskScheduleCron struct {
// Start is a stripped-down cron syntax, e.g.
// "0 30 9 * * MON-FRI *"View on GitHub (pinned to 482b49bf1a)
Solutions
- Provide cron.end with exactly 2 fields such as "17 *"
- Check for extra spaces or omitted fields
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at nomad/structs/task_sched.go:80 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04).
Data as JSON: /api/errors/b2a5fea1aaec2f3b.
Report an issue: GitHub.