hashicorp/nomad · error
all servers must have raft_protocol set to 3 or higher to us
Error message
all servers must have raft_protocol set to 3 or higher to use this endpoint
What it means
ServerHealth rejected the request because the minimum Raft protocol version in the cluster is below 3; the health endpoint relies on features that require raft_protocol 3+ on every server.
Source
Thrown at nomad/operator_endpoint.go:409
if authErr != nil {
return structs.ErrPermissionDenied
}
// This action requires operator read access.
aclObj, err := op.srv.ResolveACL(args)
if err != nil {
return err
} else if !aclObj.AllowOperatorRead() {
return structs.ErrPermissionDenied
}
// Exit early if the min Raft version is too low
minRaftProtocol, err := op.srv.MinRaftProtocol()
if err != nil {
return fmt.Errorf("error getting server raft protocol versions: %s", err)
}
if minRaftProtocol < 3 {
return fmt.Errorf("all servers must have raft_protocol set to 3 or higher to use this endpoint")
}
*reply = *op.srv.GetClusterHealth()
return nil
}
// SchedulerSetConfiguration is used to set the current Scheduler configuration.
func (op *Operator) SchedulerSetConfiguration(args *structs.SchedulerSetConfigRequest, reply *structs.SchedulerSetConfigurationResponse) error {
authErr := op.srv.Authenticate(op.ctx, args)
if done, err := op.srv.forward("Operator.SchedulerSetConfiguration", args, args, reply); done {
return err
}
op.srv.MeasureRPCRate("operator", structs.RateMetricWrite, args)
if authErr != nil {
return structs.ErrPermissionDenied
}View on GitHub (pinned to 482b49bf1a)
Solutions
- Upgrade all servers so raft_protocol is 3 or higher
- Set `raft_protocol = 3` in server configs where applicable and restart
- Retry once the peers cache reflects the upgraded protocol versions
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at nomad/operator_endpoint.go:409 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/852467f7cacb61a5.
Report an issue: GitHub.