hashicorp/nomad · error

All servers should be running version %v to update scheduler

Error message

All servers should be running version %v to update scheduler config

What it means

SchedulerSetConfiguration was rejected because not all servers meet the minimum Nomad version (0.9.0+) required for scheduler config updates; a mixed-version cluster cannot safely apply the change.

Source

Thrown at nomad/operator_endpoint.go:443

	if authErr != nil {
		return structs.ErrPermissionDenied
	}

	// This action requires operator write access.
	aclObj, err := op.srv.ResolveACL(args)
	if err != nil {
		return err
	} else if !aclObj.AllowOperatorWrite() {
		return structs.ErrPermissionDenied
	}

	// All servers should be at or above 0.9.0 to apply this operation
	if !op.srv.peersCache.ServersMeetMinimumVersion(
		op.srv.Region(),
		minSchedulerConfigVersion,
		false,
	) {
		return fmt.Errorf(
			"All servers should be running version %v to update scheduler config",
			minSchedulerConfigVersion,
		)
	}

	// Apply the update
	resp, index, err := op.srv.raftApply(structs.SchedulerConfigRequestType, args)
	if err != nil {
		op.logger.Error("failed applying Scheduler configuration", "error", err)
		return err
	}

	//  If CAS request, raft returns a boolean indicating if the update was applied.
	// Otherwise, assume success
	reply.Updated = true
	if respBool, ok := resp.(bool); ok {
		reply.Updated = respBool
	}

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Complete a rolling upgrade so every server runs the minimum version
  2. Verify with `nomad server members` and retry after the peers cache updates
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at nomad/operator_endpoint.go:443 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/a4021def71b86f99. Report an issue: GitHub.