{"record":{"id":"7b163a6643628832","repo":"BCUninstaller/Bulk-Crap-Uninstaller","slug":"scoop-export-is-in-unkown-or-invalid-format-try-u","errorCode":null,"errorMessage":"Scoop export is in unkown or invalid format! Try updating Scoop and try again.\\n\\nContents:\\n{result}","messagePattern":"Scoop export is in unkown or invalid format! Try updating Scoop and try again\\.\\\\n\\\\nContents:\\\\n(.+?)","errorType":"exception","errorClass":"InvalidDataException","httpStatus":null,"severity":"error","filePath":"source/UninstallTools/Factory/ScoopFactory.cs","lineNumber":254,"sourceCode":"\n                        var startIndex = str.IndexOf(\"(v:\", StringComparison.Ordinal);\n                        if (startIndex > 0)\n                        {\n                            var verEndIndex = str.IndexOf(')', startIndex);\n                            version = str.Substring(Math.Min(startIndex + 3, str.Length - 1), Math.Max(verEndIndex - startIndex - 3, 0));\n                            if (version.Length == 0) version = null;\n                        }\n                        isGlobal = str.Substring(spaceIndex).Contains(\"*global*\");\n                    }\n                    else\n                    {\n                        name = str;\n                    }\n\n                    // Make sure that this isn't just a corrupted json export\n                    if (string.Equals(name, \"\\\"apps\\\":\", StringComparison.Ordinal) ||\n                        string.Equals(name, \"\\\"buckets\\\":\", StringComparison.Ordinal))\n                        throw new InvalidDataException(\"Scoop export is in unkown or invalid format! Try updating Scoop and try again.\\n\\nContents:\\n\" + result, e);\n\n                    var entry = CreateUninstallerEntry(name, version, isGlobal, exeSearcher);\n\n                    results.Add(entry);\n                }\n            }\n\n            return results;\n        }\n\n        private sealed class AppInstall\n        {\n            public string Bucket { get; set; }\n            public string Architecture { get; set; }\n        }\n        private sealed class AppManifest\n        {\n            public string Homepage { get; set; }","sourceCodeStart":236,"sourceCodeEnd":272,"githubUrl":"https://github.com/BCUninstaller/Bulk-Crap-Uninstaller/blob/608321de98e92297377b1eb69029af55c25504a1/source/UninstallTools/Factory/ScoopFactory.cs#L236-L272","documentation":"An InvalidDataException thrown in ScoopFactory's fallback parser when the plain-text export line equals `\"apps\":` or `\"buckets\":`. The factory first tries JSON deserialization (the modern Scoop export format since July 2022); on JsonException it falls back to line-based parsing. Encountering raw JSON keys in that fallback path means the export is a corrupted/truncated JSON blob that also fails plain-text parsing, so it is rejected with an upgrade-Scoop hint and the full contents attached.","triggerScenarios":"Scoop's `export` command produced output that is neither valid JSON nor valid plain text: truncated JSON (starts with `{` but cut off), a Scoop version that emits a half-broken format, or a pipe encoding issue that mangled the output.","commonSituations":"Outdated Scoop version with a known export bug; Scoop updated mid-way leaving mixed-format state; terminal/redirect encoding corrupted the export; Scoop bucket corruption.","solutions":["Run `scoop update` to update Scoop itself, then retry the export.","If it persists, run `scoop reset` or reinstall Scoop to repair its scripts.","Manually run `scoop export` and inspect the output for truncation or encoding issues.","Check the Scoop GitHub issues for the installed version's known export bugs."],"exampleFix":null,"handlingStrategy":"retry","validationCode":"// Sanity-check scoop export output before parsing.\nvar result = RunScoopCommand(\"export\");\nif (string.IsNullOrWhiteSpace(result)) return results;\nbool looksLikeJson = result.TrimStart().StartsWith(\"{\");\nif (looksLikeJson && (!result.Contains(\"\\\"apps\\\"\") || !result.EndsWith(\"}\")))\n    throw new InvalidDataException(\"Scoop export appears truncated; update Scoop and retry.\");","typeGuard":null,"tryCatchPattern":"try { /* parse scoop export */ }\ncatch (InvalidDataException ex) when (ex.Message.Contains(\"Scoop export is in unkown\"))\n{ /* run `scoop update`, then retry export once */ }","preventionTips":["Keep Scoop updated before relying on export output.","Capture and log the raw export to diagnose format drift.","Validate the export starts with `{` and parses as JSON before the fallback path.","Watch Scoop release notes for export-format changes."],"tags":["scoop","json","package-manager","data-validation","uninstalltools"],"backgroundTag":null,"analyzedSha":"608321de98e92297377b1eb69029af55c25504a1","analyzedAt":"2026-08-13T12:17:35.389Z","schemaVersion":2},"datasetVersion":"2026-08-13T14:17:21.547Z"}