{"record":{"id":"1ddd849959984961","repo":"d2phap/ImageGlass","slug":"orderbystr-is-not-a-valid-loading-order","errorCode":null,"errorMessage":"'{orderByStr}' is not a valid loading order.\n\n----------\n👉🏼 Method: IG_SetLoadingOrderBy","messagePattern":"'(.+?)' is not a valid loading order\\.\n\n----------\n👉🏼 Method: IG_SetLoadingOrderBy","errorType":"validation","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"source/ImageGlass.Lib/Common/ServiceProviders/AppAPIs/AppAPIProvider.cs","lineNumber":1531,"sourceCode":"    /// Sets whether to use the Explorer sort order.\n    /// </summary>\n    public static void IG_ToggleExplorerSortOrder(bool? enabled)\n    {\n        enabled ??= !Core.Config.EnableExplorerSortOrder;\n        Core.Config.EnableExplorerSortOrder = enabled.Value;\n\n        IG_ReloadList();\n    }\n\n\n    /// <summary>\n    /// Sets the image loading order value.\n    /// </summary>\n    public void IG_SetLoadingOrderBy(string? orderByStr)\n    {\n        if (!Enum.TryParse<ImageOrderBy>(orderByStr, out var orderBy))\n        {\n            throw new ArgumentException($\"\"\"\n                '{orderByStr}' is not a valid loading order.\n\n                ----------\n                👉🏼 Method: {nameof(IG_SetLoadingOrderBy)}\n                \"\"\",\n                nameof(orderByStr));\n        }\n\n        IG_SetLoadingOrderBy(orderBy);\n    }\n\n\n    /// <summary>\n    /// Sets the image loading order value.\n    /// </summary>\n    public static void IG_SetLoadingOrderBy(ImageOrderBy orderBy)\n    {\n        if (orderBy == Core.Config.ImageLoadingOrder) return;","sourceCodeStart":1513,"sourceCodeEnd":1549,"githubUrl":"https://github.com/d2phap/ImageGlass/blob/4a3c4feceffc5a8bb5e56ba836509634aaae47a9/source/ImageGlass.Lib/Common/ServiceProviders/AppAPIs/AppAPIProvider.cs#L1513-L1549","documentation":"Thrown by the string overload of IG_SetLoadingOrderBy when Enum.TryParse<ImageOrderBy>(orderByStr) fails. ImageOrderBy is case-insensitively parsed; valid members are Name, Random, FileSize, Extension, DateCreated, DateAccessed, DateModified, ExifDateTaken, ExifRating. These names are also language keywords and must not be renamed.","triggerScenarios":"Calling IG_SetLoadingOrderBy(string) with a value not in the enum: 'date' (ambiguous; use DateModified/DateCreated/ExifDateTaken), 'size' (use FileSize), 'rating' (use ExifRating), 'filename' (use Name).","commonSituations":"Config file with a shortened alias; v9 setting name carried over; user-typed value in a custom command; trailing whitespace.","solutions":["Use one of the exact enum names: Name, Random, FileSize, Extension, DateCreated, DateAccessed, DateModified, ExifDateTaken, ExifRating.","Validate with Enum.TryParse<ImageOrderBy> upstream and call the typed overload.","Trim whitespace and map common aliases ('date' -> DateModified) before calling."],"exampleFix":"// before\napi.IG_SetLoadingOrderBy(userInput);\n\n// after\nif (Enum.TryParse<ImageOrderBy>(userInput?.Trim(), true, out var orderBy))\n{\n    api.IG_SetLoadingOrderBy(orderBy);\n}","handlingStrategy":"validation","validationCode":"if (!Enum.TryParse<ImageOrderBy>(orderByStr?.Trim(), true, out var orderBy))\n    throw new ArgumentException($\"Unknown order '{orderByStr}'.\");\napi.IG_SetLoadingOrderBy(orderBy);","typeGuard":"static bool IsValidOrderBy(string? s) => Enum.TryParse<ImageOrderBy>(s?.Trim(), true, out _);","tryCatchPattern":"try { api.IG_SetLoadingOrderBy(orderByStr); }\ncatch (ArgumentException ex) when (ex.ParamName == nameof(orderByStr))\n{ /* valid: Name, Random, FileSize, Extension, DateCreated, DateAccessed, DateModified, ExifDateTaken, ExifRating */ }","preventionTips":["Use exact enum names; map 'date' -> DateModified upstream.","Validate with Enum.TryParse<ImageOrderBy> before calling.","Trim whitespace and reject empty input."],"tags":["app-api","sorting","argument-parsing","enum"],"backgroundTag":null,"analyzedSha":"4a3c4feceffc5a8bb5e56ba836509634aaae47a9","analyzedAt":"2026-08-13T16:58:15.523Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}