hashicorp/nomad · error

Consul did not report any supported envoy versions

Error message

Consul did not report any supported envoy versions

What it means

Fired in envoyVersionHook.tweakImage during Prestart: the Consul API returned no supported Envoy versions (empty 'envoy' list), so the hook cannot pick a version to substitute into the envoy image template.

Source

Thrown at client/allocrunner/taskrunner/envoy_version_hook.go:176

	if len(config) == 0 {
		return false
	}

	if _, exists := config["image"]; !exists {
		return false
	}

	image := h.taskImage(config)

	return strings.Contains(image, envoy.VersionVar)
}

// tweakImage determines the best Envoy version to use. If no supported versions were
// detected from the Consul API just return an error.
func (h *envoyVersionHook) tweakImage(configured string, supported map[string][]string) (string, error) {
	versions := supported["envoy"]
	if len(versions) == 0 {
		return "", errors.New("Consul did not report any supported envoy versions")
	}

	latest, err := semver(versions[0])
	if err != nil {
		return "", err
	}

	return strings.ReplaceAll(configured, envoy.VersionVar, latest), nil
}

// semver sanitizes the envoy version string coming from Consul into the format
// used by the Envoy project when publishing images (i.e. proper semver). This
// resulting string value does NOT contain the 'v' prefix for 2 reasons:
//  1. the version library does not include the 'v'
//  2. its plausible unofficial images use the 3 numbers without the prefix for
//     tagging their own images
func semver(chosen string) (string, error) {
	v, err := version.NewVersion(chosen)

View on GitHub (pinned to 482b49bf1a)

Solutions

  1. Verify Consul is running and supports the /agent/connect/ca/roots or envoy version reporting endpoint used by the hook
  2. Check Consul/Nomad version compatibility and network access from the client to Consul
  3. Set a static envoy image in the task config to bypass version detection
Defensive patterns

Strategy: fallback

When it happens

Trigger: Thrown at client/allocrunner/taskrunner/envoy_version_hook.go:176 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/e12f30b784d998dd. Report an issue: GitHub.