{"record":{"id":"38a5559c1956c272","repo":"dotnet/BenchmarkDotNet","slug":"getruntimeversion-not-implemented-for-runtimemoni","errorCode":null,"errorMessage":"GetRuntimeVersion not implemented for {runtimeMoniker}","messagePattern":"GetRuntimeVersion not implemented for (.+?)","errorType":"exception","errorClass":"NotImplementedException","httpStatus":null,"severity":"error","filePath":"src/BenchmarkDotNet/Extensions/RuntimeMonikerExtensions.cs","lineNumber":134,"sourceCode":"            RuntimeMoniker.Mono90 => new Version(9, 0),\n            RuntimeMoniker.Mono10_0 => new Version(10, 0),\n            RuntimeMoniker.Mono11_0 => new Version(11, 0),\n            RuntimeMoniker.WasmNet80 => new Version(8, 0),\n            RuntimeMoniker.WasmNet90 => new Version(9, 0),\n            RuntimeMoniker.WasmNet10_0 => new Version(10, 0),\n            RuntimeMoniker.WasmNet11_0 => new Version(11, 0),\n            RuntimeMoniker.MonoAOTLLVM => Portability.RuntimeInformation.IsNetCore && CoreRuntime.TryGetVersion(out var version) ? version : new Version(6, 0),\n            RuntimeMoniker.MonoAOTLLVMNet60 => new Version(6, 0),\n            RuntimeMoniker.MonoAOTLLVMNet70 => new Version(7, 0),\n            RuntimeMoniker.MonoAOTLLVMNet80 => new Version(8, 0),\n            RuntimeMoniker.MonoAOTLLVMNet90 => new Version(9, 0),\n            RuntimeMoniker.MonoAOTLLVMNet10_0 => new Version(10, 0),\n            RuntimeMoniker.MonoAOTLLVMNet11_0 => new Version(11, 0),\n            RuntimeMoniker.R2R80 => new Version(8, 0),\n            RuntimeMoniker.R2R90 => new Version(9, 0),\n            RuntimeMoniker.R2R10_0 => new Version(10, 0),\n            RuntimeMoniker.R2R11_0 => new Version(11, 0),\n            _ => throw new NotImplementedException($\"{nameof(GetRuntimeVersion)} not implemented for {runtimeMoniker}\")\n        };\n    }\n}\n","sourceCodeStart":116,"sourceCodeEnd":138,"githubUrl":"https://github.com/dotnet/BenchmarkDotNet/blob/b515068b61ad1c9c9aa938b8ece4af1e7d6d85a3/src/BenchmarkDotNet/Extensions/RuntimeMonikerExtensions.cs#L116-L138","documentation":"GetRuntimeVersion is a switch expression mapping each RuntimeMoniker to a System.Version; the discard arm (_) throws NotImplementedException for unhandled values. Unlike [65] (ArgumentOutOfRangeException), this signals an incomplete implementation for a recognized-but-unmapped moniker, almost always a library version gap.","triggerScenarios":"A RuntimeMoniker enum value reaches the default arm of GetRuntimeVersion, i.e. one present in the enum but not yet cased (common with brand-new or preview monikers in an older library version).","commonSituations":"New .NET release moniker used with an older BenchmarkDotNet, a custom/forked RuntimeMoniker enum, or relying on a moniker added after the version you reference.","solutions":["Update BenchmarkDotNet to the release that adds the mapping for your moniker.","Fall back to a supported moniker of equivalent version.","Confirm the moniker is in both GetRuntime and GetRuntimeVersion cases for your installed version."],"exampleFix":"// before\nRuntimeMoniker.Net11_0 // not yet mapped in installed version\n\n// after\nRuntimeMoniker.Net10_0 // supported by installed version","handlingStrategy":"validation","validationCode":"// ensure the installed BenchmarkDotNet version maps your moniker in GetRuntimeVersion\n// fall back to a known-supported moniker if not","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Upgrade BenchmarkDotNet when adopting a new .NET version's moniker.","Prefer stable monikers over preview ones in production runs.","Cross-check the moniker against supported runtime lists in the docs."],"tags":["runtime-moniker","version","not-implemented"],"backgroundTag":null,"analyzedSha":"b515068b61ad1c9c9aa938b8ece4af1e7d6d85a3","analyzedAt":"2026-08-13T19:12:24.196Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}