hashicorp/nomad · error

node %s not found

Error message

node %s not found

What it means

Node.UpdateAlloc could not find the node referenced by the first allocation's NodeID in the state store; the client is reporting allocations for a node the server never registered or has since forgotten.

Source

Thrown at nomad/node_endpoint.go:1541

	// Ensure at least a single alloc
	if len(args.Alloc) == 0 {
		return fmt.Errorf("must update at least one allocation")
	}

	// Ensure the node is allowed to update allocs.
	// The node needs to successfully heartbeat before updating its allocs.
	targetNodeID := args.Alloc[0].NodeID
	if targetNodeID == "" {
		return fmt.Errorf("missing node ID")
	}

	node, err := n.srv.State().NodeByID(nil, targetNodeID)
	if err != nil {
		return fmt.Errorf("failed to retrieve node %s: %v", targetNodeID, err)
	}
	if node == nil {
		return fmt.Errorf("node %s not found", targetNodeID)
	}
	if !aclObj.AllowClientOp(node.NodePool) {
		return structs.ErrPermissionDenied
	}
	if err := auth.AuthorizeSameNode(args.GetIdentity(), targetNodeID); err != nil {
		return err
	}
	if node.UnresponsiveStatus() {
		return fmt.Errorf("node %s is not allowed to update allocs while in status %s", targetNodeID, node.Status)
	}

	// Ensure that evals aren't set from client RPCs
	// We create them here before the raft update
	if len(args.Evals) != 0 {
		return fmt.Errorf("evals field must not be set")
	}

	// Update modified timestamp for client initiated allocation updates

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Ensure the node is registered with the server (client must call Register before UpdateAlloc)
  2. Verify the NodeID on the allocations matches an existing node
  3. Re-register or restart the client if its node entry was garbage-collected
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at nomad/node_endpoint.go:1541 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/fbb743a9d87c9a1c. Report an issue: GitHub.