hashicorp/nomad · error

failed to lookup eval: %v

Error message

failed to lookup eval: %v

What it means

Fires inside the blocking Eval.Get RPC when the state store lookup of the evaluation by ID returns an error (Raft/state store failure); it is not a not-found case — not-found yields a nil eval and an empty reply.

Source

Thrown at nomad/eval_endpoint.go:77

	allowNsOp := acl.NamespaceValidator(acl.NamespaceCapabilityReadJob)
	aclObj, err := e.srv.ResolveACL(args)
	if err != nil {
		return err
	} else if !allowNsOp(aclObj, args.RequestNamespace()) {
		return structs.ErrPermissionDenied
	}

	// Setup the blocking query
	opts := blockingOptions{
		queryOpts: &args.QueryOptions,
		queryMeta: &reply.QueryMeta,
		run: func(ws memdb.WatchSet, state *state.StateStore) error {
			var related []*structs.EvaluationStub

			// Look for the eval
			eval, err := state.EvalByID(ws, args.EvalID)
			if err != nil {
				return fmt.Errorf("failed to lookup eval: %v", err)
			}

			if eval != nil {
				// Re-check namespace in case it differs from request.
				if !allowNsOp(aclObj, eval.Namespace) {
					return structs.ErrPermissionDenied
				}

				// Lookup related evals if requested.
				if args.IncludeRelated {
					related, err = state.EvalsRelatedToID(ws, eval.ID)
					if err != nil {
						return fmt.Errorf("failed to lookup related evals: %v", err)
					}

					// Use a copy to avoid modifying the original eval.
					eval = eval.Copy()
					eval.RelatedEvals = related

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Check server logs for Raft or memdb errors
  2. Verify cluster health and quorum
  3. Retry the eval read once the state store is healthy
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at nomad/eval_endpoint.go:77 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/47056fabcd388ef0. Report an issue: GitHub.