hashicorp/packer · error

version %s of %s is not listed in %s/%s/index.json

Error message

version %s of %s is not listed in %s/%s/index.json

What it means

Remote-mirror getter error from versionURL: the requested plugin version is not present in the mirror's index.json for that plugin type, so its download URL cannot be resolved. The mirror is out of sync or the version was never published there.

Source

Thrown at packer/plugin-getter/remote/getter.go:183

	}
	idx, err := parseIndex(data, pluginType)
	if err != nil {
		return nil, "", fmt.Errorf("%s: %w", url, err)
	}
	g.index = idx
	return idx, dir, nil
}

// versionURL resolves the version directory URL for the version being
// fetched, failing when the index does not list it.
func (g *Getter) versionURL(opts plugingetter.GetOptions) (*pluginIndex, string, error) {
	idx, dir, err := g.loadIndex(opts)
	if err != nil {
		return nil, "", err
	}
	version := opts.VersionString()
	if _, ok := idx.versions[version]; !ok {
		return nil, "", fmt.Errorf(
			"version %s of %s is not listed in %s/%s/index.json",
			version, idx.pluginType, g.BaseURL, dir)
	}
	return idx, g.BaseURL + "/" + dir + "/" + version, nil
}

// resolveProtocolVersion reads the plugin protocol version from a version's
// manifest.json and caches it for Validate.
func (g *Getter) resolveProtocolVersion(versionURL, pluginType, version string) error {
	if _, ok := g.protVersions[version]; ok {
		return nil
	}
	data, err := g.fetch(versionURL + "/" + pluginType + "_" + version + "_manifest.json")
	if err != nil {
		return fmt.Errorf(
			"%w\nThe checksum entries of this version carry no plugin protocol version in their names, so the mirrored version must include its manifest.json, as published on releases.hashicorp.com", err)
	}
	var meta plugingetter.ManifestMeta

View on GitHub (pinned to eb36e3c3e4)

Solutions

  1. Use a version listed in the mirror's index.json
  2. Switch to the official releases.hashicorp.com source or another mirror that carries the version
  3. Publish/sync the version to the mirror if you own it
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at packer/plugin-getter/remote/getter.go:183 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of hashicorp/packer@eb36e3c3e4 (2026-09-05). Data as JSON: /api/errors/9f8ced8c835013e2. Report an issue: GitHub.