{"record":{"id":"d9f8b9ec872fd589","repo":"Unity-Technologies/UnityCsReference","slug":"scripting-backend-value-scriptingbackend-is-not","errorCode":null,"errorMessage":"Scripting backend value {scriptingBackend} is not supported.","messagePattern":"Scripting backend value (.+?) is not supported\\.","errorType":"exception","errorClass":"ArgumentException","httpStatus":null,"severity":"error","filePath":"Editor/Mono/Inspector/PlayerSettingsEditor/PlayerSettingsEditor.cs","lineNumber":4742,"sourceCode":"        }\n\n        static GUIContent[] GetNiceScriptingBackendNames(ScriptingImplementation[] scriptingBackends)\n        {\n            return Array.ConvertAll(scriptingBackends, s => GetNiceScriptingBackendName(s));\n        }\n\n        static GUIContent GetNiceScriptingBackendName(ScriptingImplementation scriptingBackend)\n        {\n            switch (scriptingBackend)\n            {\n                case ScriptingImplementation.Mono2x:\n                    return SettingsContent.scriptingMono2x;\n                case ScriptingImplementation.IL2CPP:\n                    return SettingsContent.scriptingIL2CPP;\n                case ScriptingImplementation.CoreCLR:\n                    return SettingsContent.scriptingCoreCLR;\n                default:\n                    throw new ArgumentException($\"Scripting backend value {scriptingBackend} is not supported.\", nameof(scriptingBackend));\n            }\n        }\n\n        private static GUIContent[] GetNiceApiCompatibilityLevelNames(ApiCompatibilityLevel[] apiCompatibilityLevels)\n        {\n            if (m_NiceApiCompatibilityLevelNames == null)\n            {\n                m_NiceApiCompatibilityLevelNames = new Dictionary<ApiCompatibilityLevel, GUIContent>\n                {\n                    { ApiCompatibilityLevel.NET_Unity_4_8, SettingsContent.apiCompatibilityLevel_NET_FW_Unity },\n                    { ApiCompatibilityLevel.NET_Standard, SettingsContent.apiCompatibilityLevel_NET_Standard },\n                    // ApiCompatibilityLevel.NET is intentionally Obsolete/hidden for now, but still needs a display name here.\n#pragma warning disable 618\n                    { ApiCompatibilityLevel.NET, SettingsContent.apiCompatibilityLevel_NET_10 },\n#pragma warning restore 618\n                };\n            }\n","sourceCodeStart":4724,"sourceCodeEnd":4760,"githubUrl":"https://github.com/Unity-Technologies/UnityCsReference/blob/225b0fbdb57cc17d094e8056b71f8314aba56f73/Editor/Mono/Inspector/PlayerSettingsEditor/PlayerSettingsEditor.cs#L4724-L4760","documentation":"Thrown by GetNiceScriptingBackendName when a ScriptingImplementation value is not Mono2x, IL2CPP, or CoreCLR. The switch is meant to be exhaustive over the supported scripting backends; any other value is unsupported.","triggerScenarios":"Calling GetNiceScriptingBackendName with a ScriptingImplementation that is not currently supported (e.g. a disabled/preview backend). A build profile or platform exposing a backend the editor build does not include.","commonSituations":"Platform-specific scripting backends not installed. Enum values from a newer Unity version rendered by an older editor. Custom player settings scripting that sets an unsupported backend.","solutions":["Ensure the ScriptingImplementation is one of Mono2x, IL2CPP, or CoreCLR for the active editor build.","Install the platform backend module if a required backend is missing.","Guard before calling: validate against the supported set and use a default."],"exampleFix":"// before\nvar name = GetNiceScriptingBackendName(backend);\n\n// after\nvar supported = backend == ScriptingImplementation.Mono2x\n              || backend == ScriptingImplementation.IL2CPP\n              || backend == ScriptingImplementation.CoreCLR;\nif (!supported) { Debug.LogWarning($\"Unsupported backend {backend}\"); backend = ScriptingImplementation.IL2CPP; }\nvar name = GetNiceScriptingBackendName(backend);","handlingStrategy":"validation","validationCode":"bool IsSupportedBackend(ScriptingImplementation b) =>\n    b == ScriptingImplementation.Mono2x || b == ScriptingImplementation.IL2CPP || b == ScriptingImplementation.CoreCLR;","typeGuard":"static bool IsSupportedBackend(ScriptingImplementation b) =>\n    b == ScriptingImplementation.Mono2x || b == ScriptingImplementation.IL2CPP || b == ScriptingImplementation.CoreCLR;","tryCatchPattern":null,"preventionTips":["Restrict to Mono2x/IL2CPP/CoreCLR.","Install missing platform backend modules."],"tags":["unity","editor","player-settings","scripting-backend","enum-mapping"],"backgroundTag":null,"analyzedSha":"225b0fbdb57cc17d094e8056b71f8314aba56f73","analyzedAt":"2026-08-13T19:07:19.849Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}