hashicorp/nomad · error
node is not allowed to register in node pool %q
Error message
node is not allowed to register in node pool %q
What it means
NodeRegisterRequest.Validate rejected registration because the node targets the reserved `all` node pool; `all` is a selector keyword, not a pool nodes may join.
Source
Thrown at nomad/structs/node.go:622
}
if n.Node.Datacenter == "" {
return errors.New("missing datacenter for client registration")
}
if n.Node.Name == "" {
return errors.New("missing node name for client registration")
}
if len(n.Node.Attributes) == 0 {
return errors.New("missing attributes for client registration")
}
if n.Node.SecretID == "" {
return errors.New("missing node secret ID for client registration")
}
if n.Node.NodePool != "" {
if err := ValidateNodePoolName(n.Node.NodePool); err != nil {
return fmt.Errorf("invalid node pool: %v", err)
}
if n.Node.NodePool == NodePoolAll {
return fmt.Errorf("node is not allowed to register in node pool %q", NodePoolAll)
}
}
return nil
}
// ShouldGenerateNodeIdentity compliments the functionality within
// AuthenticateNodeIdentityGenerator to determine whether a new node identity
// should be generated within the RPC handler.
func (n *NodeRegisterRequest) ShouldGenerateNodeIdentity(
authErr error,
now time.Time,
ttl time.Duration,
) bool {
// In the event the error is because the node identity is expired, we should
// generate a new identity. Without this, a disconnected node would never be
// able to re-register. Any other error is not a reason to generate a newView on GitHub (pinned to 482b49bf1a)
Solutions
- Set the client's node_pool to a real pool such as `default`
- Remove the `all` value from node_pool config
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at nomad/structs/node.go:622 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/92fbd3bb2f83be02.
Report an issue: GitHub.