hashicorp/nomad · error

failed to get scheduler configuration: %v

Error message

failed to get scheduler configuration: %v

What it means

SystemScheduler.setJob failed reading the global scheduler configuration via state.SchedulerConfig(). Wrapped (%v) so the state-store failure is visible when tuning the stack.

Source

Thrown at scheduler/scheduler_system.go:219

	}

	// Success!
	return true, nil
}

// setJob updates the stack with the given job and job's node pool scheduler
// configuration.
func (s *SystemScheduler) setJob(job *structs.Job) error {
	// Fetch node pool and global scheduler configuration to determine how to
	// configure the scheduler.
	pool, err := s.state.NodePoolByName(nil, job.NodePool)
	if err != nil {
		return fmt.Errorf("failed to get job node pool %q: %v", job.NodePool, err)
	}

	_, schedConfig, err := s.state.SchedulerConfig()
	if err != nil {
		return fmt.Errorf("failed to get scheduler configuration: %v", err)
	}

	s.stack.SetJob(job)
	s.stack.SetSchedulerConfiguration(schedConfig.WithNodePool(pool))
	return nil
}

// computeJobAllocs is used to reconcile differences between the job,
// existing allocations and node status to update the allocations.
func (s *SystemScheduler) computeJobAllocs() error {
	// Lookup the allocations by JobID
	ws := memdb.NewWatchSet()
	allocs, err := s.state.AllocsByJob(ws, s.eval.Namespace, s.eval.JobID, true)
	if err != nil {
		return fmt.Errorf("failed to get allocs for job '%s': %v", s.eval.JobID, err)
	}

	// Determine the tainted nodes containing job allocs

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Check leader health and Raft logs
  2. Let the evaluation retry once the state read succeeds
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at scheduler/scheduler_system.go:219 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/1151af6d9b7059a7. Report an issue: GitHub.