hashicorp/nomad · error
numa scheduling requires Nomad Enterprise
Error message
numa scheduling requires Nomad Enterprise
What it means
CE build guard (//go:build !ent) in jobNumaHook.Validate: a job declares a resources.numa block, but NUMA-aware scheduling is an Enterprise-only feature, so the job is rejected on the open-source edition.
Source
Thrown at nomad/job_endpoint_hook_numa_ce.go:20
// SPDX-License-Identifier: BUSL-1.1
//go:build !ent
package nomad
import (
"errors"
"github.com/hashicorp/nomad/nomad/structs"
)
// Validate ensures job does not contain any task making use of the
// resources.numa block, which is only supported in Nomad Enterprise.
func (jobNumaHook) Validate(job *structs.Job) ([]error, error) {
for _, tg := range job.TaskGroups {
for _, task := range tg.Tasks {
if task.Resources.NUMA.Requested() {
return nil, errors.New("numa scheduling requires Nomad Enterprise")
}
}
}
return nil, nil
}
// Mutate does nothing.
func (jobNumaHook) Mutate(job *structs.Job) (*structs.Job, []error, error) {
return job, nil, nil
}
View on GitHub (pinned to 482b49bf1a)
Solutions
- Remove the `resources.numa` block from the task.
- Upgrade to Nomad Enterprise to use NUMA scheduling.
- Rely on the OS scheduler / cgroup CPU pinning available in OSS instead.
Example fix
// before
resources {
cpu = 4000
numa {
policy = "strict"
}
}
// after
resources {
cpu = 4000
} Defensive patterns
Strategy: validation
Validate before calling
if task.Resources != nil && task.Resources.NUMA.Requested() {
return errors.New("numa scheduling requires Nomad Enterprise")
} Prevention
- Don't copy resources.numa blocks into OSS job specs
- Keep Enterprise-specific job files separated by edition
- Run `nomad job validate` against the target server first
When it happens
Trigger: Submitting a job where a task's resources block contains `numa { ... }` (e.g. `numa { policy = "strict" }`) on a Nomad OSS (CE) server.
Common situations: Attempting NUMA pinning for latency-sensitive workloads (HPC, telco) on an OSS cluster; copying Enterprise job specs to CE.
Related errors
- non-default Consul cluster requires Nomad Enterprise
- task schedules requires Nomad Enterprise
- non-default Vault cluster requires Nomad Enterprise
- ErrConnectRequireOneNetwork
- ErrConnectInvalidNetworkMode
AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04).
Data as JSON: /api/errors/2069c47a10d82256.
Report an issue: GitHub.