Unity-Technologies/UnityCsReference · critical · NotSupportedException

Unsupported architecture {RuntimeInformation.ProcessArchitec

Error message

Unsupported architecture {RuntimeInformation.ProcessArchitecture} on Windows

What it means

Thrown by GetCurrentDotNETRuntimeId (UnityEditorMSBuildPropsTargetsGeneration.cs:200, NotSupportedException) when running on Windows but RuntimeInformation.ProcessArchitecture is neither Architecture.Arm64 nor Architecture.X64 (e.g. X86 / 32-bit, or Arm). Unity's bundled MSBuild/.NET SDK only ships RIDs for win-arm64 and win-x64, so any other architecture cannot be mapped to a runtime identifier and the props/targets generation aborts.

Source

Thrown at Editor/Mono/Scripting/ScriptCompilation/MsBuild/UnityEditorMSBuildPropsTargetsGeneration.cs:200

            cache.AllPlugins,
            searchPaths,
            globalAnalyzers,
            buildTarget.ToString(),
            CompilationPipeline.codeOptimization == CodeOptimization.Release);
    }

    private static string GetCurrentDotNETRuntimeId()
    {
        if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
        {
            switch (RuntimeInformation.ProcessArchitecture)
            {
                case Architecture.Arm64:
                    return "win-arm64";
                case Architecture.X64:
                    return "win-x64";
                default:
                    throw new NotSupportedException($"Unsupported architecture {RuntimeInformation.ProcessArchitecture} on Windows");
            }
        }
        else if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
        {
            return "linux-x64";
        }
        else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
        {
            switch (RuntimeInformation.ProcessArchitecture)
            {
                case Architecture.Arm64:
                    return "osx-arm64";
                case Architecture.X64:
                    return "osx-x64";
                default:
                    throw new NotSupportedException($"Unsupported architecture {RuntimeInformation.ProcessArchitecture} on macOS");
            }
        }

View on GitHub (pinned to 225b0fbdb5)

Solutions

  1. Run Unity Editor on a supported 64-bit Windows architecture (x64 or ARM64).
  2. If you must stay on the current machine, use a 64-bit OS install so ProcessArchitecture reports X64 or Arm64.
Defensive patterns

Strategy: validation

Validate before calling

// Guard before any code path that resolves a Windows RID
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
    && RuntimeInformation.ProcessArchitecture is not (Architecture.X64 or Architecture.Arm64))
{
    throw new PlatformNotSupportedException(
        $"Unity requires Windows x64 or ARM64 (got {RuntimeInformation.ProcessArchitecture}).");
}

Prevention

When it happens

Trigger: Launching the Unity Editor on a 32-bit Windows (x86) machine, or an unsupported Windows-on-Arm configuration, triggering MSBuild props generation for script compilation.

Common situations: Running the editor under an x86 emulation layer or a 32-bit OS. A non-standard Windows device family without a 64-bit runtime.

Related errors


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