hashicorp/nomad · error
maximum attempts reached (%d)
Error message
maximum attempts reached (%d)
What it means
retryMax terminal error: the scheduler exhausted its maximum plan-application attempts without the callback reporting done and without a reset of the attempt counter (i.e. no forward progress across retries). The eval is marked failed via SetStatusError.
Source
Thrown at scheduler/util.go:86
attempts := 0
for attempts < max {
done, err := cb()
if err != nil {
return err
}
if done {
return nil
}
// Check if we should reset the number attempts
if reset != nil && reset() {
attempts = 0
} else {
attempts++
}
}
return &SetStatusError{
Err: fmt.Errorf("maximum attempts reached (%d)", max),
EvalStatus: structs.EvalStatusFailed,
}
}
// progressMade checks to see if the plan result made allocations or updates.
// If the result is nil, false is returned.
func progressMade(result *structs.PlanResult) bool {
return result != nil && (len(result.NodeUpdate) != 0 ||
len(result.NodeAllocation) != 0 || result.Deployment != nil ||
len(result.DeploymentUpdates) != 0)
}
// taintedNodes is used to scan the allocations and then check if the
// underlying nodes are tainted, and should force a migration of the allocation,
// or if the underlying nodes are disconnected, and should be used to calculate
// the reconnect timeout of its allocations. All the nodes returned in the map are tainted.
func taintedNodes(state sstructs.State, allocs []*structs.Allocation) (map[string]*structs.Node, error) {
out := make(map[string]*structs.Node)View on GitHub (pinned to 482b49bf1a)
Solutions
- Look for persistent plan-commit conflicts or state store errors in server logs
- Check for pathological job/node churn that prevents any plan from fully committing
- Re-submit or re-evaluate the job after resolving the underlying conflict
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at scheduler/util.go:86 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/6072957a13a1f092.
Report an issue: GitHub.