hashicorp/nomad · error
alloc %v does not have a valid task group
Error message
alloc %v does not have a valid task group
What it means
consulHook.Prerun guard: job.LookupTaskGroup(h.alloc.TaskGroup) returned nil, so the allocation's task group name does not match any group in its job - flagged as always a programming/state error and aborts prerun.
Source
Thrown at client/allocrunner/consul_hook.go:103
func (h *consulHook) Prerun(allocEnv *taskenv.TaskEnv) error {
job := h.alloc.Job
if job == nil {
// this is always a programming error
err := fmt.Errorf("alloc %v does not have a job", h.alloc.Name)
h.logger.Error(err.Error())
return err
}
// tokens are a map of Consul cluster to identity name to Consul ACL token.
tokens, err := h.resourcesBackend.loadAllocTokens()
if err != nil {
h.logger.Error("error reading stored ACL tokens", "error", err)
}
tg := job.LookupTaskGroup(h.alloc.TaskGroup)
if tg == nil { // this is always a programming error
return fmt.Errorf("alloc %v does not have a valid task group", h.alloc.Name)
}
var mErr *multierror.Error
if err := h.prepareConsulTokensForServices(tg.Services, tg, tokens, allocEnv); err != nil {
mErr = multierror.Append(mErr, err)
}
for _, task := range tg.Tasks {
taskEnv := allocEnv.WithTask(h.alloc, task)
if err := h.prepareConsulTokensForServices(task.Services, tg, tokens, taskEnv); err != nil {
mErr = multierror.Append(mErr, err)
}
if err := h.prepareConsulTokensForTask(task, tg, tokens); err != nil {
mErr = multierror.Append(mErr, err)
}
}
if err := mErr.ErrorOrNil(); err != nil {
revokeErr := h.revokeTokens(tokens)View on GitHub (pinned to 482b49bf1a)
Solutions
- Report as a bug; indicates alloc/job state mismatch
- Verify the job stored on the alloc contains the referenced task group
- Restart the client to re-fetch authoritative alloc state from servers
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at client/allocrunner/consul_hook.go:103 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/2fbb31939a122df0.
Report an issue: GitHub.