{"record":{"id":"a8dea224257b3dd7","repo":"tui-cs/Terminal.Gui","slug":"schemename-does-not-exist-in-schemes","errorCode":null,"errorMessage":"{schemeName}: Does not exist in Schemes.","messagePattern":"(.+?): Does not exist in Schemes\\.","errorType":"exception","errorClass":"InvalidOperationException","httpStatus":null,"severity":"error","filePath":"Terminal.Gui/Configuration/SchemeManager.cs","lineNumber":105,"sourceCode":"            GetSchemes () [schemeName] = scheme;\n        }\n    }\n\n    /// <summary>\n    ///     Removes a Scheme from <see cref=\"SchemeManager\"/>.\n    /// </summary>\n    /// <param name=\"schemeName\"></param>\n    /// <exception cref=\"InvalidOperationException\">If the scheme is a built-in Scheme or was not previously added.</exception>\n    public static void RemoveScheme (string schemeName)\n    {\n        if (SchemeNameToSchemes (schemeName) is { })\n        {\n            throw new InvalidOperationException ($@\"{schemeName}: Cannot remove a built-in Scheme.\");\n        }\n\n        if (!GetSchemes ().TryGetValue (schemeName, out _))\n        {\n            throw new InvalidOperationException ($@\"{schemeName}: Does not exist in Schemes.\");\n        }\n\n        GetSchemes ().Remove (schemeName);\n    }\n\n    /// <summary>\n    ///     Gets the <see cref=\"Scheme\"/> for the specified <see cref=\"Drawing.Schemes\"/>.\n    /// </summary>\n    /// <param name=\"schemeName\"></param>\n    /// <returns></returns>\n    /// <exception cref=\"ArgumentException\"></exception>\n    public static Scheme GetScheme (Schemes schemeName)\n    {\n        // Convert schemeName to string via Enum api\n        string? schemeNameString = SchemesToSchemeName (schemeName);\n\n        return schemeNameString is null ? throw new ArgumentException ($\"Invalid scheme name: {schemeName}\") : GetSchemesForCurrentTheme () [schemeNameString]!;\n    }","sourceCodeStart":87,"sourceCodeEnd":123,"githubUrl":"https://github.com/tui-cs/Terminal.Gui/blob/2e47b11478db083499917f2ad27c34d30efb0df1/Terminal.Gui/Configuration/SchemeManager.cs#L87-L123","documentation":"RemoveScheme was called with a name that is neither a built-in scheme nor present in the current schemes dictionary. You can only remove a scheme that was previously added via AddScheme and still exists.","triggerScenarios":"Calling RemoveScheme with a typo, or removing a scheme that was already removed, or before it was added.","commonSituations":"Double-removal; cleanup logic that does not track current state; misspelled scheme name.","solutions":["Verify the scheme exists with TryGetScheme or GetSchemes().ContainsKey(name) before removing.","Guard removal with an existence check."],"exampleFix":"// before\nSchemeManager.RemoveScheme (\"myTheme\");\n// after\nif (SchemeManager.TryGetScheme (\"myTheme\", out _))\n{\n    SchemeManager.RemoveScheme (\"myTheme\");\n}","handlingStrategy":"validation","validationCode":"if (SchemeManager.TryGetScheme (name, out _))\n{\n    SchemeManager.RemoveScheme (name);\n}","typeGuard":null,"tryCatchPattern":"try { SchemeManager.RemoveScheme (name); }\ncatch (InvalidOperationException ex) when (ex.Message.Contains (\"Does not exist\"))\n{ /* already removed or never added; nothing to do */ }","preventionTips":["Track added scheme names; avoid blind removals.","Use TryGetScheme to test before RemoveScheme."],"tags":["config","scheme","runtime-api"],"backgroundTag":null,"analyzedSha":"2e47b11478db083499917f2ad27c34d30efb0df1","analyzedAt":"2026-08-13T19:20:08.826Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}