{"record":{"id":"171ce5d63c5606f6","repo":"dotnet/BenchmarkDotNet","slug":"runtime-moniker-runtimemoniker-is-not-supported-171ce5","errorCode":null,"errorMessage":"Runtime moniker {runtimeMoniker} is not supported","messagePattern":"Runtime moniker (.+?) is not supported","errorType":"exception","errorClass":"ArgumentOutOfRangeException","httpStatus":null,"severity":"error","filePath":"src/BenchmarkDotNet.Diagnostics.dotTrace/DotTraceDiagnoser.cs","lineNumber":130,"sourceCode":"            case RuntimeMoniker.MonoAOTLLVMNet90:\n            case RuntimeMoniker.MonoAOTLLVMNet10_0:\n            case RuntimeMoniker.MonoAOTLLVMNet11_0:\n            case RuntimeMoniker.Mono60:\n            case RuntimeMoniker.Mono70:\n            case RuntimeMoniker.Mono80:\n            case RuntimeMoniker.Mono90:\n            case RuntimeMoniker.Mono10_0:\n            case RuntimeMoniker.Mono11_0:\n                return false;\n            case RuntimeMoniker.NetCoreApp20:\n            case RuntimeMoniker.NetCoreApp21:\n            case RuntimeMoniker.NetCoreApp22:\n                return OsDetector.IsWindows();\n            case RuntimeMoniker.NetCoreApp30:\n            case RuntimeMoniker.NetCoreApp31:\n                return OsDetector.IsWindows() || OsDetector.IsLinux();\n            default:\n                throw new ArgumentOutOfRangeException(nameof(runtimeMoniker), runtimeMoniker, $\"Runtime moniker {runtimeMoniker} is not supported\");\n        }\n    }\n}\n","sourceCodeStart":112,"sourceCodeEnd":134,"githubUrl":"https://github.com/dotnet/BenchmarkDotNet/blob/b515068b61ad1c9c9aa938b8ece4af1e7d6d85a3/src/BenchmarkDotNet.Diagnostics.dotTrace/DotTraceDiagnoser.cs#L112-L134","documentation":"DotTraceDiagnoser.IsSupported is an exhaustive switch over RuntimeMoniker that throws ArgumentOutOfRangeException on the default branch. Reached only for a moniker value this BDN build does not enumerate at all.","triggerScenarios":"A new .NET release introduces a RuntimeMoniker not yet covered by this DotTraceDiagnoser build, or a custom/derived moniker is supplied. Every currently-known moniker returns an explicit true/false.","commonSituations":"Running on a preview/newer SDK whose moniker postdates this diagnoser build; mismatched BDN engine + diagnoser versions where the engine knows a newer moniker.","solutions":["Upgrade BenchmarkDotNet.Diagnostics.dotTrace to a version whose IsSupported switch covers your moniker.","If patching, add the missing case returning the desired bool.","Switch the Job to a supported runtime moniker."],"exampleFix":null,"handlingStrategy":"validation","validationCode":"static readonly HashSet<RuntimeMoniker> DotTraceSupported = new()\n{ RuntimeMoniker.Net80, RuntimeMoniker.Net90, RuntimeMoniker.Net60 /* ...per IsSupported */ };\nif (!DotTraceSupported.Contains(job.Runtime.Moniker))\n    throw new NotSupportedException($\"dotTrace diagnoser does not support {job.Runtime.Moniker}; upgrade BDN.\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Use a BenchmarkDotNet.Diagnostics.dotTrace build whose IsSupported covers your moniker.","Avoid preview SDKs mapping to monikers not yet enumerated.","Add the missing case in IsSupported when patching BDN."],"tags":["benchmarkdotnet","dottrace","runtime-moniker","compatibility","profiler"],"backgroundTag":null,"analyzedSha":"b515068b61ad1c9c9aa938b8ece4af1e7d6d85a3","analyzedAt":"2026-08-13T19:12:24.196Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}