{"record":{"id":"57553649fb9cb3f1","repo":"Unity-Technologies/UnityCsReference","slug":"invalid-argument-0-provided","errorCode":null,"errorMessage":"Invalid argument {0} provided.","messagePattern":"Invalid argument (.+?) provided\\.","errorType":"exception","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"Editor/Mono/Scripting/ScriptCompilation/CompilationPipeline.cs","lineNumber":280,"sourceCode":"                }\n\n                switch (value)\n                {\n                    case CodeOptimization.Debug:\n                    {\n                        EnableScriptDebugInfo();\n                        break;\n                    }\n\n                    case CodeOptimization.Release:\n                    {\n                        DisableScriptDebugInfo();\n                        break;\n                    }\n\n                    default:\n                    {\n                        throw new ArgumentException(string.Format(\"Invalid argument {0} provided.\", value.ToString()));\n                    }\n                }\n            }\n        }\n\n        internal static bool TryGetLastBuildResult(CompileTarget target, out CompilationDoneResult? lastCompilationDoneResult)\n        {\n            if (MsBuildCompilationInterface.Instance.TryGetLastBuildResult(target, out var result))\n            {\n                lastCompilationDoneResult = result;\n                return true;\n            }\n\n            lastCompilationDoneResult = null;\n            return false;\n        }\n\n        internal static void ReportBuildFinished(CompileTarget target, CompilationDoneResult compilationDoneResult)","sourceCodeStart":262,"sourceCodeEnd":298,"githubUrl":"https://github.com/Unity-Technologies/UnityCsReference/blob/225b0fbdb57cc17d094e8056b71f8314aba56f73/Editor/Mono/Scripting/ScriptCompilation/CompilationPipeline.cs#L262-L298","documentation":"ArgumentException from the CodeOptimization setter's switch: the supplied value is not Debug or Release. The default branch rejects any other CodeOptimization value.","triggerScenarios":"Assigning a CodeOptimization value other than Debug or Release to the property (e.g. an undefined/None enum member).","commonSituations":"Passing an uninitialized or newly added CodeOptimization value, or default(CodeOptimization) when that is neither Debug nor Release.","solutions":["Map to CodeOptimization.Debug or CodeOptimization.Release explicitly.","Validate the incoming value before assignment."],"exampleFix":"// before\nSetCodeOptimization(userValue);\n// after\nvar v = (userValue == CodeOptimization.Release) ? CodeOptimization.Release : CodeOptimization.Debug;\nSetCodeOptimization(v);","handlingStrategy":"validation","validationCode":"if (value != CodeOptimization.Debug && value != CodeOptimization.Release)\n    throw new ArgumentOutOfRangeException(nameof(value), $\"Unsupported CodeOptimization: {value}\");","typeGuard":"static bool IsSupported(CodeOptimization c) =>\n    c == CodeOptimization.Debug || c == CodeOptimization.Release;","tryCatchPattern":null,"preventionTips":["Normalize unknown CodeOptimization values to Debug or Release before assignment.","Avoid default(CodeOptimization) unless it equals one of the supported members."],"tags":["script-compilation","validation","arguments","enum"],"backgroundTag":null,"analyzedSha":"225b0fbdb57cc17d094e8056b71f8314aba56f73","analyzedAt":"2026-08-13T19:07:19.849Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}