{"record":{"id":"5cef9c4d8e5f39fa","repo":"hashicorp/packer","slug":"could-not-find-a-local-nor-a-remote-checksum-for-p","errorCode":null,"errorMessage":"could not find a local nor a remote checksum for plugin %q %q","messagePattern":"could not find a local nor a remote checksum for plugin %q %q","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packer/plugin-getter/plugins.go","lineNumber":959,"sourceCode":"\t\t\t\t\t\tBinaryPath: strings.ReplaceAll(outputFileName, \"\\\\\", \"/\"),\n\t\t\t\t\t\tVersion:    \"v\" + version.String(),\n\t\t\t\t\t}, nil\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t}\n\n\tif len(versions) == 0 {\n\t\tif errs.Len() == 0 {\n\t\t\terr := fmt.Errorf(\"no release version found for constraints: %q\", pr.VersionConstraints.String())\n\t\t\terrs = multierror.Append(errs, err)\n\t\t}\n\t\treturn nil, errs\n\t}\n\n\tif errs.ErrorOrNil() == nil {\n\t\terr := fmt.Errorf(\"could not find a local nor a remote checksum for plugin %q %q\", pr.Identifier, pr.VersionConstraints)\n\t\terrs = multierror.Append(errs, err)\n\t}\n\terrs = multierror.Append(errs, fmt.Errorf(\"could not install any compatible version of plugin %q\", pr.Identifier))\n\treturn nil, errs\n}\n\nfunc GetPluginDescription(pluginPath string) (pluginsdk.SetDescription, error) {\n\tout, err := exec.Command(pluginPath, \"describe\").Output()\n\tif err != nil {\n\t\treturn pluginsdk.SetDescription{}, err\n\t}\n\n\tdesc := pluginsdk.SetDescription{}\n\terr = json.Unmarshal(out, &desc)\n\n\treturn desc, err\n}\n","sourceCodeStart":941,"sourceCodeEnd":977,"githubUrl":"https://github.com/hashicorp/packer/blob/eb36e3c3e48a036f3e8cc94087636ee72e1303c9/packer/plugin-getter/plugins.go#L941-L977","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before (behind proxy, packer can't fetch checksums)\npacker init .\n// after\nexport HTTPS_PROXY=http://proxy.corp:3128\npacker init .","handlingStrategy":"retry","validationCode":"// before init, confirm checksums are reachable\ncurl -fsSL https://github.com/<org>/<plugin>/releases -o /dev/null ||\\\n  echo \"github unreachable: configure HTTPS_PROXY\"","typeGuard":null,"tryCatchPattern":"// retry with backoff when checksums can't be fetched\nfor attempt := 0; attempt < 3; attempt++ {\n    if err := run(\"packer\", \"init\", \".\"); err == nil {\n        break\n    }\n    time.Sleep(time.Duration(1<<attempt) * time.Second)\n}","preventionTips":["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"],"tags":["plugin-install","checksum","network","packer"],"backgroundTag":"checksum-not-found","analyzedSha":"eb36e3c3e48a036f3e8cc94087636ee72e1303c9","analyzedAt":"2026-09-05T13:20:43.127Z","contentChangedAt":"2026-09-05T13:20:43.127Z","schemaVersion":2},"datasetVersion":"2026-09-12T17:17:11.597Z"}