hashicorp/nomad · error
failed to get ready nodes: %v
Error message
failed to get ready nodes: %v
What it means
SystemScheduler.process failed to query ready nodes in the job's datacenters and node pool. This is a state-store read failure during scheduling, not a jobspec error; the wrapped error carries the store-level cause.
Source
Thrown at scheduler/scheduler_system.go:136
var err error
ws := memdb.NewWatchSet()
s.job, err = s.state.JobByID(ws, s.eval.Namespace, s.eval.JobID)
if err != nil {
return false, fmt.Errorf("failed to get job '%s': %v", s.eval.JobID, err)
}
numTaskGroups := 0
if !s.job.Stopped() {
numTaskGroups = len(s.job.TaskGroups)
}
s.queuedAllocs = make(map[string]int, numTaskGroups)
// Get the ready nodes in the required datacenters
if !s.job.Stopped() {
s.nodes, s.notReadyNodes, s.nodesByDC, err = readyNodesInDCsAndPool(
s.state, s.job.Datacenters, s.job.NodePool)
if err != nil {
return false, fmt.Errorf("failed to get ready nodes: %v", err)
}
}
s.deployment, err = s.state.LatestDeploymentByJobID(ws, s.eval.Namespace, s.eval.JobID)
if err != nil {
return false, fmt.Errorf("failed to get deployment for job %q: %w", s.eval.JobID, err)
}
// system deployments may be mutated in the reconciler because the node
// count can change between evaluations
s.deployment = s.deployment.Copy()
// Create a plan
s.plan = s.eval.MakePlan(s.job)
// Reset the failed allocations
s.failedTGAllocs = nil
// Create an evaluation contextView on GitHub (pinned to 482b49bf1a)
Solutions
- Check server health and Raft logs for the failed nodes query
- Verify the job's datacenters and node pool exist
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at scheduler/scheduler_system.go:136 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/b5e3f48870ef2e62.
Report an issue: GitHub.