Unity-Technologies/UnityCsReference · error · NotSupportedException

Unknown scripting backend:{scriptingBackend}

Error message

Unknown scripting backend:{scriptingBackend}

What it means

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.

Source

Thrown at Editor/Mono/Modules/BeeBuildPostprocessor.cs:561

        protected string GetDataFolderFor(BuildPostProcessArgs args) => $"{BuildPipeline.GetDataCacheForBuildTarget(args.target, args.subtarget)}/Data";

        protected ScriptingBackend GetScriptingBackend(BuildPostProcessArgs args)
        {
            var scriptingBackend = PlayerSettings.GetScriptingBackend(GetNamedBuildTarget(args));
            switch (scriptingBackend)
            {
                case ScriptingImplementation.Mono2x:
                    return ScriptingBackend.Mono;

                case ScriptingImplementation.IL2CPP:
                    return ScriptingBackend.IL2CPP;

                case ScriptingImplementation.CoreCLR:
                    return ScriptingBackend.CoreCLR;

                default:
                    throw new NotSupportedException("Unknown scripting backend:" + scriptingBackend);
            }
        }

        protected virtual string GetPlatformNameForBuildProgram(BuildPostProcessArgs args) => args.target.ToString();
        protected virtual string GetArchitecture(BuildPostProcessArgs args) => EditorUserBuildSettings.GetPlatformSettings(BuildPipeline.GetBuildTargetName(args.target), "Architecture");
        protected Dictionary<string, Action<NodeFinishedMessage>> ResultProcessors { get; } = new ();

        RunnableProgram MakePlayerBuildProgram(BuildPostProcessArgs args)
        {
            var buildProgramAssembly = new NPath($"{args.playerPackage}/{GetPlatformNameForBuildProgram(args)}PlayerBuildProgram.exe");
            NPath buildPipelineFolder = EditorApplication.applicationBuildPipelinePath;
            NPath beePlatformFolder = $"{args.playerPackage}/Bee";
            var searchPaths = $"{beePlatformFolder}{Path.PathSeparator}";
            if (IL2CPPUtils.UsingDevelopmentBuild())
            {
                searchPaths = $"{IL2CPPUtils.ConstructBeeLibrarySearchPath()}{Path.PathSeparator}";
            }

View on GitHub (pinned to 225b0fbdb5)

Solutions

  1. Update the converter switch to handle the new ScriptingImplementation value with the correct ScriptingBackend mapping.
  2. Set PlayerSettings.ScriptingBackend to a supported value (Mono, IL2CPP) for the target platform.
  3. Ensure the project and build postprocessor target the same Unity version that defines the scripting backend enum.

Example fix

// before
case ScriptingImplementation.CoreCLR:
    return ScriptingBackend.CoreCLR;
default:
    throw new NotSupportedException(...);

// after
case ScriptingImplementation.CoreCLR:
    return ScriptingBackend.CoreCLR;
case ScriptingImplementation.NewBackend:
    return ScriptingBackend.NewBackend;
Defensive patterns

Strategy: validation

Validate before calling

// Set a supported backend before building: PlayerSettings.SetScriptingBackendForBuildTargetGroup(group, ScriptingImplementation.IL2CPP);

Try / catch

try { /* build */ }
catch (NotSupportedException ex) when (ex.Message.StartsWith("Unknown scripting backend")) { Debug.LogError($"Unsupported scripting backend; set IL2CPP or Mono. {ex.Message}"); }

Prevention

When it happens

Trigger: 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.

Common situations: 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.

Related errors


AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13). Data as JSON: /api/errors/97b86a3110722945. Report an issue: GitHub.