hashicorp/nomad · error

Consul Ingress Gateway requires at least one listener

Error message

Consul Ingress Gateway requires at least one listener

What it means

ConsulIngressConfigEntry.Validate found zero listeners on an ingress gateway. An ingress gateway with nothing to listen on is meaningless, so at least one listener block is required.

Source

Thrown at nomad/structs/services.go:2568

func (e *ConsulIngressConfigEntry) Equal(o *ConsulIngressConfigEntry) bool {
	if e == nil || o == nil {
		return e == o
	}

	if !e.TLS.Equal(o.TLS) {
		return false
	}

	return ingressListenersEqual(e.Listeners, o.Listeners)
}

func (e *ConsulIngressConfigEntry) Validate() error {
	if e == nil {
		return nil
	}

	if len(e.Listeners) == 0 {
		return fmt.Errorf("Consul Ingress Gateway requires at least one listener")
	}

	for _, listener := range e.Listeners {
		if err := listener.Validate(); err != nil {
			return err
		}
	}

	return nil
}

func ingressListenersEqual(a, b []*ConsulIngressListener) bool {
	return helper.ElementsEqual(a, b)
}

type ConsulLinkedService struct {
	Name     string
	CAFile   string

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Add at least one listener block to the ingress stanza
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at nomad/structs/services.go:2568 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/a02ea125ff28d7fd. Report an issue: GitHub.