{"record":{"id":"3ded80cd89b93152","repo":"siyuan-note/siyuan","slug":"package-checksum-is-unavailable","errorCode":null,"errorMessage":"package checksum is unavailable","messagePattern":"package checksum is unavailable","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"kernel/model/updater_release.go","lineNumber":379,"sourceCode":"}\n\nfunc getGitHubManifestChecksum(ctx context.Context, release *githubRelease, pkgName string) (string, error) {\n\tmanifestAsset := findGitHubReleaseAsset(release, \"SHA256SUMS.txt\")\n\tif nil == manifestAsset || \"uploaded\" != manifestAsset.State || \"\" == manifestAsset.BrowserDownloadURL {\n\t\treturn \"\", errors.New(\"checksum manifest is unavailable\")\n\t}\n\tmanifestDigest := normalizeSHA256(manifestAsset.Digest)\n\tmanifestCacheKey := \"\"\n\tif \"\" != manifestDigest {\n\t\tmanifestCacheKey = manifestAsset.BrowserDownloadURL + \"#\" + manifestDigest\n\t}\n\tif \"\" != manifestCacheKey {\n\t\tcached, ok := githubManifestCache.Load(manifestCacheKey)\n\t\tif ok {\n\t\t\tif checksum := parseChecksumManifest(cached.(string), pkgName); \"\" != checksum {\n\t\t\t\treturn checksum, nil\n\t\t\t}\n\t\t\treturn \"\", errors.New(\"package checksum is unavailable\")\n\t\t}\n\t}\n\n\tresponse, err := httpclient.NewCloudRequest30s().SetContext(ctx).Get(manifestAsset.BrowserDownloadURL)\n\tif err != nil {\n\t\treturn \"\", err\n\t}\n\tif nil == response || nil == response.Response {\n\t\treturn \"\", errors.New(\"checksum manifest response is empty\")\n\t}\n\tdefer response.Body.Close()\n\tif 200 != response.StatusCode {\n\t\treturn \"\", fmt.Errorf(\"get checksum manifest failed: %d\", response.StatusCode)\n\t}\n\tdata, err := io.ReadAll(io.LimitReader(response.Body, maxChecksumManifestSize+1))\n\tif err != nil {\n\t\treturn \"\", err\n\t}","sourceCodeStart":361,"sourceCodeEnd":397,"githubUrl":"https://github.com/siyuan-note/siyuan/blob/9f775e8a12daef8255556097396f9b2739078892/kernel/model/updater_release.go#L361-L397","documentation":"getGitHubManifestChecksum parses the cached or freshly downloaded SHA256SUMS.txt content and extracts the checksum line for the requested package (pkgName). If the manifest was found and loaded, but no entry matches the package name, this error is thrown. The upstream caller treats it as a warning and proceeds without a checksum.","triggerScenarios":"parseChecksumManifest(cached, pkgName) returning empty because the manifest file does not contain a line for the current install package name — e.g. the manifest was cached from an older release whose asset list differs, or the package filename changed between versions.","commonSituations":"Stale githubManifestCache entry keyed by URL#digest where the same URL now serves different content; package naming scheme changed (OS/arch installer renamed) so the manifest line no longer matches; truncated or hand-edited manifest.","solutions":["Retry with force=true on the update check; if the manifest digest changed, the cache key changes and a fresh manifest is fetched","Check that SHA256SUMS.txt on the release page actually lists the installer file for your platform; if not, it is a release-packaging issue to report","If it recurs, clear the process cache by restarting the kernel so githubManifestCache is emptied","Install manually and verify the SHA-256 by hand against the manifest line for your file"],"exampleFix":null,"handlingStrategy":"retry","validationCode":"manifest, _ := githubManifestCache.Load(key)\nlisted := manifest != nil && strings.Contains(manifest.(string), pkgName)","typeGuard":null,"tryCatchPattern":"checksum, err := getGitHubManifestChecksum(ctx, release, pkg)\nif err != nil {\n    logging.LogWarnf(\"no checksum for %s: %s\", pkg, err) // continue without checksum\n}","preventionTips":["Force a refresh so the manifest cache is keyed to the current release digest","Confirm your platform's installer filename is present in SHA256SUMS.txt before automated updates","Restart the kernel if a stale manifest cache entry is suspected","Report missing package lines in the manifest as a release-packaging bug"],"tags":["checksum","manifest","cache"],"backgroundTag":"checksum-mismatch","analyzedSha":"9f775e8a12daef8255556097396f9b2739078892","analyzedAt":"2026-09-19T03:17:15.984Z","contentChangedAt":"2026-09-19T03:17:15.984Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}