{"record":{"id":"97b86a3110722945","repo":"Unity-Technologies/UnityCsReference","slug":"unknown-scripting-backend-scriptingbackend","errorCode":null,"errorMessage":"Unknown scripting backend:{scriptingBackend}","messagePattern":"Unknown scripting backend:(.+?)","errorType":"exception","errorClass":"NotSupportedException","httpStatus":null,"severity":"error","filePath":"Editor/Mono/Modules/BeeBuildPostprocessor.cs","lineNumber":561,"sourceCode":"\n        protected string GetDataFolderFor(BuildPostProcessArgs args) => $\"{BuildPipeline.GetDataCacheForBuildTarget(args.target, args.subtarget)}/Data\";\n\n        protected ScriptingBackend GetScriptingBackend(BuildPostProcessArgs args)\n        {\n            var scriptingBackend = PlayerSettings.GetScriptingBackend(GetNamedBuildTarget(args));\n            switch (scriptingBackend)\n            {\n                case ScriptingImplementation.Mono2x:\n                    return ScriptingBackend.Mono;\n\n                case ScriptingImplementation.IL2CPP:\n                    return ScriptingBackend.IL2CPP;\n\n                case ScriptingImplementation.CoreCLR:\n                    return ScriptingBackend.CoreCLR;\n\n                default:\n                    throw new NotSupportedException(\"Unknown scripting backend:\" + scriptingBackend);\n            }\n        }\n\n        protected virtual string GetPlatformNameForBuildProgram(BuildPostProcessArgs args) => args.target.ToString();\n        protected virtual string GetArchitecture(BuildPostProcessArgs args) => EditorUserBuildSettings.GetPlatformSettings(BuildPipeline.GetBuildTargetName(args.target), \"Architecture\");\n        protected Dictionary<string, Action<NodeFinishedMessage>> ResultProcessors { get; } = new ();\n\n        RunnableProgram MakePlayerBuildProgram(BuildPostProcessArgs args)\n        {\n            var buildProgramAssembly = new NPath($\"{args.playerPackage}/{GetPlatformNameForBuildProgram(args)}PlayerBuildProgram.exe\");\n            NPath buildPipelineFolder = EditorApplication.applicationBuildPipelinePath;\n            NPath beePlatformFolder = $\"{args.playerPackage}/Bee\";\n            var searchPaths = $\"{beePlatformFolder}{Path.PathSeparator}\";\n            if (IL2CPPUtils.UsingDevelopmentBuild())\n            {\n                searchPaths = $\"{IL2CPPUtils.ConstructBeeLibrarySearchPath()}{Path.PathSeparator}\";\n            }\n","sourceCodeStart":543,"sourceCodeEnd":579,"githubUrl":"https://github.com/Unity-Technologies/UnityCsReference/blob/225b0fbdb57cc17d094e8056b71f8314aba56f73/Editor/Mono/Modules/BeeBuildPostprocessor.cs#L543-L579","documentation":"Thrown by BeeBuildPostprocessor when converting a ScriptingImplementation to a ScriptingBackend and the enum value is not one of Mono2x, IL2CPP, or CoreCLR. The default branch surfaces an unsupported scripting backend as a NotSupportedException.","triggerScenarios":"A build target or player settings configuration that reports a ScriptingImplementation value the postprocessor does not recognize — e.g. a value from a newer Unity version, an experimental backend, or a platform whose settings were set incorrectly.","commonSituations":"Upgrading to a Unity version that introduced a new scripting backend enum value without updating this converter. Platform-specific build settings that expose a backend the Bee postprocessor cannot map. Custom/experimental platform targets.","solutions":["Update the converter switch to handle the new ScriptingImplementation value with the correct ScriptingBackend mapping.","Set PlayerSettings.ScriptingBackend to a supported value (Mono, IL2CPP) for the target platform.","Ensure the project and build postprocessor target the same Unity version that defines the scripting backend enum."],"exampleFix":"// before\ncase ScriptingImplementation.CoreCLR:\n    return ScriptingBackend.CoreCLR;\ndefault:\n    throw new NotSupportedException(...);\n\n// after\ncase ScriptingImplementation.CoreCLR:\n    return ScriptingBackend.CoreCLR;\ncase ScriptingImplementation.NewBackend:\n    return ScriptingBackend.NewBackend;","handlingStrategy":"validation","validationCode":"// Set a supported backend before building: PlayerSettings.SetScriptingBackendForBuildTargetGroup(group, ScriptingImplementation.IL2CPP);","typeGuard":null,"tryCatchPattern":"try { /* build */ }\ncatch (NotSupportedException ex) when (ex.Message.StartsWith(\"Unknown scripting backend\")) { Debug.LogError($\"Unsupported scripting backend; set IL2CPP or Mono. {ex.Message}\"); }","preventionTips":["Pin project and postprocessor to the same Unity version","Extend the switch for new backends","Use supported ScriptingImplementation values per platform"],"tags":["unity","editor","build","scripting-backend","enum-switch","bee"],"backgroundTag":null,"analyzedSha":"225b0fbdb57cc17d094e8056b71f8314aba56f73","analyzedAt":"2026-08-13T19:07:19.849Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}