{"record":{"id":"d81947726f7012bd","repo":"CloakHQ/CloakBrowser","slug":"signature-verified-pro-sha256sums-has-no-entry-for-d81947","errorCode":null,"errorMessage":"Signature-verified Pro SHA256SUMS has no entry for {tarballName} - cannot confirm binary integrity.","messagePattern":"Signature-verified Pro SHA256SUMS has no entry for (.+?) - cannot confirm binary integrity\\.","errorType":"exception","errorClass":"BinaryVerificationError","httpStatus":null,"severity":"critical","filePath":"dotnet/src/CloakBrowser/Download.cs","lineNumber":632,"sourceCode":"        }\n        catch (InvalidOperationException exc)\n        {\n            throw new BinaryVerificationError(exc.Message, exc);\n        }\n\n        var manifestText = System.Text.Encoding.UTF8.GetString(manifestData);\n\n        // Version binding: same forced-downgrade defense as the official free path.\n        var declared = ParseManifestVersion(manifestText);\n        if (declared != version)\n            throw new BinaryVerificationError(\n                $\"Version mismatch in signed Pro SHA256SUMS: requested {version}, \" +\n                $\"manifest declares {declared ?? \"none\"}. Refusing (possible downgrade).\");\n\n        var tarballName = Config.GetArchiveName();\n        var checksums = ParseChecksums(manifestText);\n        if (!checksums.TryGetValue(tarballName, out var expected))\n            throw new BinaryVerificationError(\n                $\"Signature-verified Pro SHA256SUMS has no entry for {tarballName} - \" +\n                \"cannot confirm binary integrity.\");\n        try\n        {\n            VerifyChecksum(filePath, expected);\n        }\n        catch (InvalidOperationException exc)\n        {\n            throw new BinaryVerificationError(exc.Message, exc);\n        }\n    }\n\n    private static void WriteProVersionMarker(string version, string? releaseChannel = null)\n    {\n        var markerPrefix = Config.NormalizeReleaseChannel(releaseChannel) == \"preview\"\n            ? \"latest_pro_version_preview\"\n            : \"latest_pro_version\";\n        var marker = Path.Combine(Config.GetCacheDir(), $\"{markerPrefix}_{Config.GetPlatformTag()}\");","sourceCodeStart":614,"sourceCodeEnd":650,"githubUrl":"https://github.com/CloakHQ/CloakBrowser/blob/d6bad5de261bedf025280ace1d14e800aee13923/dotnet/src/CloakBrowser/Download.cs#L614-L650","documentation":"After the Pro SHA256SUMS manifest passes signature and version checks, the code looks up the expected hash for the archive named by Config.GetArchiveName(). If that filename has no line in the manifest, integrity cannot be confirmed and the error is thrown rather than trusting the binary.","triggerScenarios":"Calling DownloadProBinaryAsync on a platform/arch whose tarball name (Config.GetArchiveName()) is absent from the fetched SHA256SUMS - e.g. a new OS/arch combination the release publisher forgot to include, or a filename format change between versions.","commonSituations":"Running on an uncommon platform (e.g. linux-arm64 vs amd64) the publisher didn't ship; a release where manifest filenames were renamed (compression change .tar.gz -> .zip); stale manifest for a newer archive naming scheme.","solutions":["Check the release's SHA256SUMS contents and confirm your OS/arch archive is listed; if not, use a supported platform or wait for a fixed release","Update the library to the latest version in case archive naming changed","Report the missing entry at the project issue tracker with your platform and version"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { await dl.DownloadProBinaryAsync(version, ct); }\ncatch (BinaryVerificationError e) when (e.Message.Contains(\"no entry for\"))\n{ /* unsupported platform for this release: abort or pick another platform */ }","preventionTips":["Check the release notes/SHA256SUMS for supported platforms before adopting a version","Test on all target platforms in CI when bumping versions"],"tags":["checksum","manifest","platform","pro-download"],"backgroundTag":"checksum-manifest-missing-entry","analyzedSha":"d6bad5de261bedf025280ace1d14e800aee13923","analyzedAt":"2026-08-28T14:13:12.918Z","schemaVersion":2},"datasetVersion":"2026-08-28T16:17:29.566Z"}