hashicorp/nomad · error

eval insert failed: %v

Error message

eval insert failed: %v

What it means

While marking a pending eval complete during job deletion, inserting the updated eval into memdb failed; the wrapped insert error aborts the delete transaction.

Source

Thrown at nomad/state/state_store.go:2071

		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 {
			return fmt.Errorf("index update failed: %v", err)
		}
	}

	// Delete allocs associated with the job
	if err := s.deleteAllocsForJobTxn(txn, index, namespace, job.ID); err != nil {
		return err
	}

	// Cleanup plugins registered by this job, before we delete the summary
	err = s.deleteJobFromPlugins(index, txn, job)
	if err != nil {
		return fmt.Errorf("deleting job from plugin: %v", err)
	}

	// Delete the job summary

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Retry the delete operation
  2. Check server logs for state store write errors
  3. Verify Raft/state health if inserts keep failing
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at nomad/state/state_store.go:2071 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/11904d655e1655cb. Report an issue: GitHub.