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

  1. Report as a bug; indicates alloc/job state mismatch
  2. Verify the job stored on the alloc contains the referenced task group
  3. 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.