hashicorp/nomad · error
followup eval lookup failed: %v
Error message
followup eval lookup failed: %v
What it means
While cancelling a reconnect follow-up eval, the memdb read of that eval by ID failed; the wrapped txn.First error prevents completing the cancellation.
Source
Thrown at nomad/state/state_store.go:4208
copyAlloc.FollowupEvalID = ""
allJobAllocs, err := s.AllocsByJob(nil, alloc.Namespace, alloc.JobID, true)
if err != nil {
return fmt.Errorf("could not lookup allocs: %w", err)
}
for _, jobAlloc := range allJobAllocs {
if jobAlloc.ID != copyAlloc.ID && jobAlloc.FollowupEvalID == evalID && !jobAlloc.TerminalStatus() {
// follow-up eval was created for multiple non-terminal allocs in
// the job at the same time, so we leave it alone
return nil
}
}
raw, err := txn.First("evals", "id", evalID)
if err != nil {
return fmt.Errorf("followup eval lookup failed: %v", err)
}
if raw == nil {
return nil // eval was deleted by user
}
eval := raw.(*structs.Evaluation)
eval = eval.Copy()
eval.Status = structs.EvalStatusCancelled
eval.StatusDescription = "allocs reconnected"
eval.ModifyIndex = index
err = txn.Insert("evals", eval)
if err != nil {
return err
}
if err := txn.Insert("index", &IndexEntry{"evals", index}); err != nil {
return fmt.Errorf("index update failed: %v", err)
}
return nil
}View on GitHub (pinned to 482b49bf1a)
Solutions
- Retry the allocation update
- Inspect server logs for eval table read errors
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at nomad/state/state_store.go:4208 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/de12a5f0a481cfad.
Report an issue: GitHub.