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
- Run Unity Editor on a supported 64-bit Windows architecture (x64 or ARM64).
- 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
- Run Unity Editor only on supported 64-bit Windows (x64/ARM64).
- Detect architecture at startup and fail fast with a clear message rather than mid-compile.
- Avoid 32-bit OS installs and x86 emulation layers for editor work.
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
- Unsupported architecture {RuntimeInformation.ProcessArchitec
- Unsupported OS platform {RuntimeInformation.OSDescription}
- Unity SDK nuget feed not found at {sdkNugetsPath}
- No {prefix}*{suffix} package found in {sdkNugetsPath}
- Bundled dotnet SDK not found at {sdkRoot}
AI-assisted analysis of Unity-Technologies/UnityCsReference@225b0fbdb5 (2026-08-13).
Data as JSON: /api/errors/23bf9760f824e7fc.
Report an issue: GitHub.