hashicorp/nomad · error

eval lookup failed: %v

Error message

eval lookup failed: %v

What it means

While completing a job's pending evals during deletion, the memdb read of an eval by ID failed; the wrapped lookup error aborts the delete transaction.

Source

Thrown at nomad/state/state_store.go:2055

	deploymentIDs := []string{}
	for _, d := range deployments {
		deploymentIDs = append(deploymentIDs, d.ID)
	}

	if err := s.DeleteDeploymentTxn(index, deploymentIDs, txn); err != nil {
		return err
	}

	// Mark all "pending" evals for this job as "complete"
	evals, err := s.EvalsByJob(nil, namespace, job.ID)
	if err != nil {
		return fmt.Errorf("eval lookup for job %s failed: %v", job.ID, err)
	}

	for _, eval := range evals {
		existing, err := txn.First("evals", "id", eval.ID)
		if err != nil {
			return fmt.Errorf("eval lookup failed: %v", err)
		}
		if existing == nil {
			continue
		}

		if existing.(*structs.Evaluation).Status != structs.EvalStatusPending {
			continue
		}

		eval := existing.(*structs.Evaluation).Copy()
		eval.Status = structs.EvalStatusComplete
		eval.StatusDescription = fmt.Sprintf("job %s deleted", job.ID)

		// Insert the eval
		if err := txn.Insert("evals", eval); err != nil {
			return fmt.Errorf("eval insert failed: %v", err)
		}
		if err := txn.Insert("index", &IndexEntry{"evals", index}); err != nil {

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Retry the delete; the eval may settle on retry
  2. Inspect server logs for the underlying state store error
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at nomad/state/state_store.go:2055 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/1491f2a3c40d8fc1. Report an issue: GitHub.