hashicorp/packer · error

could not find a local nor a remote checksum for plugin %q %

Error message

could not find a local nor a remote checksum for plugin %q %q

What it means

At the end of InstallLatest, when no checksum could be obtained from either the local download or the remote checksum file, this error is added to the multierror before the generic 'could not install any compatible version' summary. It means Packer cannot verify the integrity of any candidate binary.

Source

Thrown at packer/plugin-getter/plugins.go:959

						BinaryPath: strings.ReplaceAll(outputFileName, "\\", "/"),
						Version:    "v" + version.String(),
					}, nil
				}

			}
		}
	}

	if len(versions) == 0 {
		if errs.Len() == 0 {
			err := fmt.Errorf("no release version found for constraints: %q", pr.VersionConstraints.String())
			errs = multierror.Append(errs, err)
		}
		return nil, errs
	}

	if errs.ErrorOrNil() == nil {
		err := fmt.Errorf("could not find a local nor a remote checksum for plugin %q %q", pr.Identifier, pr.VersionConstraints)
		errs = multierror.Append(errs, err)
	}
	errs = multierror.Append(errs, fmt.Errorf("could not install any compatible version of plugin %q", pr.Identifier))
	return nil, errs
}

func GetPluginDescription(pluginPath string) (pluginsdk.SetDescription, error) {
	out, err := exec.Command(pluginPath, "describe").Output()
	if err != nil {
		return pluginsdk.SetDescription{}, err
	}

	desc := pluginsdk.SetDescription{}
	err = json.Unmarshal(out, &desc)

	return desc, err
}

View on GitHub (pinned to eb36e3c3e4)

Solutions

  1. Verify network access to github.com (curl the plugin's releases/checksum URL from the same machine)
  2. Configure HTTP_PROXY/HTTPS_PROXY correctly if behind a corporate proxy
  3. Pre-download the plugin and its checksum manually, then run `packer plugins install` against the local file
  4. Check the plugin repository actually publishes a checksum file for the target release
  5. Retry later if GitHub is having an outage

Example fix

// before (behind proxy, packer can't fetch checksums)
packer init .
// after
export HTTPS_PROXY=http://proxy.corp:3128
packer init .
Defensive patterns

Strategy: retry

Validate before calling

// before init, confirm checksums are reachable
curl -fsSL https://github.com/<org>/<plugin>/releases -o /dev/null ||\
  echo "github unreachable: configure HTTPS_PROXY"

Try / catch

// retry with backoff when checksums can't be fetched
for attempt := 0; attempt < 3; attempt++ {
    if err := run("packer", "init", "."); err == nil {
        break
    }
    time.Sleep(time.Duration(1<<attempt) * time.Second)
}

Prevention

When it happens

Trigger: InstallLatest runs with errs empty but no checksum source available for the plugin requirement — remote release listing yielded no checksum file and no local checksum exists for the identifier/version constraints.

Common situations: GitHub access blocked by a firewall/proxy so the SHA256SUM file can't be fetched; plugin repository does not publish checksum files; corporate mirror strips checksum assets; DNS failures presenting as missing remote checksum.

Related errors


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