hashicorp/nomad · error

Node Pools Governance is unlicensed.

Error message

Node Pools Governance is unlicensed.

What it means

Nomad's NodePoolSchedulerConfiguration.Validate rejects any non-nil scheduler configuration because 'Node Pools Governance' is a licensed (Enterprise) feature; the open-source build refuses all node pool scheduler configuration. A non-nil NodePoolSchedulerConfiguration on a node pool means the feature is in use, so validation fails unconditionally.

Source

Thrown at nomad/structs/node_pool_ce.go:14

// Copyright IBM Corp. 2015, 2026
// SPDX-License-Identifier: BUSL-1.1

//go:build !ent

package structs

import "errors"

// Validate returns an error if the node pool scheduler configuration is
// invalid.
func (n *NodePoolSchedulerConfiguration) Validate() error {
	if n != nil {
		return errors.New("Node Pools Governance is unlicensed.")
	}
	return nil
}

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Remove the scheduler_configuration block from the node pool definition
  2. Upgrade to a Nomad Enterprise license that includes Node Pools Governance
  3. Apply the node pool with an empty/nil scheduler configuration

Example fix

// before (HCL)
node {
  node_pool = "prod"
  scheduler_configuration {
    scheduler_algorithm = "spread"
  }
}
// after
node {
  node_pool = "prod"
}
Defensive patterns

Strategy: validation

Validate before calling

if pool.SchedulerConfiguration != nil {
    return fmt.Errorf("node pool %q sets scheduler_configuration, which requires a Nomad Enterprise license", pool.Name)
}

Type guard

func hasSchedulerConfig(n *structs.NodePoolSchedulerConfiguration) bool { return n != nil }

Prevention

When it happens

Trigger: Creating or updating a node pool (nomad node pool apply or job node_pool stanza) with a scheduler_configuration block set on an unlicensed Nomad OSS binary.

Common situations: Running OSS Nomad after migrating configs from Nomad Enterprise; HCL job files copied from an Enterprise environment that include a scheduler_configuration block; automation applying node pools with default config structs non-nil.

Related errors


AI-assisted analysis of hashicorp/nomad@482b49bf1a (2026-09-04). Data as JSON: /api/errors/0ef79e033b7384ed. Report an issue: GitHub.