hashicorp/nomad · error

Consul Gateway Proxy connection_timeout must be set

Error message

Consul Gateway Proxy connection_timeout must be set

What it means

ConsulGatewayProxy.Validate requires connection_timeout because Consul's Envoy gateway proxy API treats it as mandatory; a nil ConnectTimeout in the gateway proxy stanza triggers this error.

Source

Thrown at nomad/structs/services.go:2162

	if !reflect.DeepEqual(p.Config, o.Config) {
		return false
	}

	return true
}

const (
	strictDNS  = "STRICT_DNS"
	logicalDNS = "LOGICAL_DNS"
)

func (p *ConsulGatewayProxy) Validate() error {
	if p == nil {
		return nil
	}

	if p.ConnectTimeout == nil {
		return fmt.Errorf("Consul Gateway Proxy connection_timeout must be set")
	}

	switch p.EnvoyDNSDiscoveryType {
	case "", strictDNS, logicalDNS:
		// Consul defaults to logical DNS, suitable for large scale workloads.
		// https://www.envoyproxy.io/docs/envoy/v1.16.1/intro/arch_overview/upstream/service_discovery
	default:
		return fmt.Errorf("Consul Gateway Proxy Envoy DNS Discovery type must be %s or %s", strictDNS, logicalDNS)
	}

	for _, bindAddr := range p.EnvoyGatewayBindAddresses {
		if err := bindAddr.Validate(); err != nil {
			return err
		}
	}

	return nil
}

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Add connection_timeout (e.g. "5s") to the connect gateway proxy block
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at nomad/structs/services.go:2162 when the library encounters an invalid state.

Common situations: See trigger scenarios.

Understand the failure class


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