hashicorp/nomad · error

task schedules requires Nomad Enterprise

Error message

task schedules requires Nomad Enterprise

What it means

Task schedules (cron-like scheduling of task start/stop inside allocations) are a Nomad Enterprise feature. The CE jobSchedHook Validate hook returns this error if any task in the job has a non-nil schedule block.

Source

Thrown at nomad/job_endpoint_hook_sched_ce.go:18

// Copyright IBM Corp. 2015, 2026
// SPDX-License-Identifier: BUSL-1.1

//go:build !ent

package nomad

import (
	"errors"

	"github.com/hashicorp/nomad/nomad/structs"
)

func (jobSchedHook) Validate(job *structs.Job) ([]error, error) {
	for _, tg := range job.TaskGroups {
		for _, task := range tg.Tasks {
			if task.Schedule != nil {
				return nil, errors.New("task schedules requires Nomad Enterprise")
			}
		}
	}
	return nil, nil
}

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Remove the `schedule` block from the task.
  2. Upgrade to Nomad Enterprise for task scheduling.
  3. Use an external scheduler (system cron triggering `nomad job run`) instead.

Example fix

// before
task "web" {
  schedule {
    cron = "0 * * * *"
  }
}

// after
task "web" {
}
Defensive patterns

Strategy: validation

Validate before calling

if task.Schedule != nil {
  return errors.New("task schedules requires Nomad Enterprise")
}

Prevention

When it happens

Trigger: Submitting a job where a task contains a `schedule { ... }` block (e.g. `schedule { cron = "..." }`) on a Nomad OSS server.

Common situations: Copying an Enterprise job spec to CE; trying out task cron scheduling on OSS without a license.

Related errors


AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04). Data as JSON: /api/errors/0fc9e9f0ac0e2045. Report an issue: GitHub.