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
- Verify network access to github.com (curl the plugin's releases/checksum URL from the same machine)
- Configure HTTP_PROXY/HTTPS_PROXY correctly if behind a corporate proxy
- Pre-download the plugin and its checksum manually, then run `packer plugins install` against the local file
- Check the plugin repository actually publishes a checksum file for the target release
- 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
- Configure HTTP(S)_PROXY in restricted networks before running packer init
- Allowlist github.com release/checksum endpoints in corporate firewalls
- Verify the plugin publishes checksum files for its releases
- Cache plugin downloads with `packer plugins install` from a local path in air-gapped CI
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
- failed to checksum binary file: %s
- failed to write local binary checksum file: %s
- binary reported version (%q) is different from the expected
- transformReleasesVersionStream got nil body
- Checksum: failed to open file for checksum: %s
AI-assisted analysis of hashicorp/packer@eb36e3c3e4 (2026-09-05).
Data as JSON: /api/errors/5cef9c4d8e5f39fa.
Report an issue: GitHub.