hashicorp/nomad · error

evaluation does not exist to be reblocked

Error message

evaluation does not exist to be reblocked

What it means

PlanBuilder guard in ReblockEval: the evaluation to re-block does not exist in the state store, so it cannot transition back to blocked. Indicates a stale or already-GC'd eval was submitted for reblocking.

Source

Thrown at scheduler/structs/structs.go:227

	p.CreateEvals = append(p.CreateEvals, eval)

	return nil
}

func (p *PlanBuilder) ReblockEval(eval *structs.Evaluation) error {
	// Ensure sequential plan application
	p.planLock.Lock()
	defer p.planLock.Unlock()

	// Check that the evaluation was already blocked.
	ws := memdb.NewWatchSet()
	old, err := p.State.EvalByID(ws, eval.ID)
	if err != nil {
		return err
	}

	if old == nil {
		return fmt.Errorf("evaluation does not exist to be reblocked")
	}
	if old.Status != structs.EvalStatusBlocked {
		return fmt.Errorf("evaluation %q is not already in a blocked state", old.ID)
	}

	p.ReblockEvals = append(p.ReblockEvals, eval)
	return nil
}

func (p *PlanBuilder) ServersMeetMinimumVersion(_ *version.Version, _ bool) bool {
	return p.serversMeetMinimumVersion
}

// NextIndex returns the next index
func (p *PlanBuilder) NextIndex() uint64 {
	p.nextIndexLock.Lock()
	defer p.nextIndexLock.Unlock()
	idx := p.nextIndex

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Verify the eval ID still exists before re-blocking
  2. Skip reblocking evals that may have been garbage-collected
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at scheduler/structs/structs.go:227 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/2e1711eb8adfef16. Report an issue: GitHub.