{"record":{"id":"3092f865314dbb77","repo":"TechnitiumSoftware/DnsServer","slug":"protocolname-is-supported-only-on-windows-11-bu","errorCode":null,"errorMessage":"{protocolName} is supported only on Windows 11 (build 22000 and later), Windows Server 2022 (and later), and Linux. On Linux, you must install 'libmsquic' manually.","messagePattern":"(.+?) is supported only on Windows 11 \\(build 22000 and later\\), Windows Server 2022 \\(and later\\), and Linux\\. On Linux, you must install 'libmsquic' manually\\.","errorType":"exception","errorClass":"DnsServerException","httpStatus":null,"severity":"error","filePath":"DnsServerCore/Dns/DnsServer.cs","lineNumber":6623,"sourceCode":"                    return Environment.OSVersion.Version.Major >= 10; //unix sockets are supported on Windows Server 2019 (oct update 1809), Windows 10 (Insider Build 17063), or later\n\n                default:\n                    return false;\n            }\n        }\n\n        #endregion\n\n        #region quic\n\n        internal static void ValidateQuicSupport(string protocolName = \"DNS-over-QUIC\")\n        {\n            if (!QuicConnection.IsSupported)\n            {\n                if (!Socket.OSSupportsIPv6)\n                    throw new DnsServerException(protocolName + \" requires IPv6 support on the system to work.\");\n\n                throw new DnsServerException(protocolName + \" is supported only on Windows 11 (build 22000 and later), Windows Server 2022 (and later), and Linux. On Linux, you must install 'libmsquic' manually.\");\n            }\n        }\n\n        #endregion\n\n        #region public\n\n        public async Task StartAsync(bool throwIfBindFails = false)\n        {\n            if (_disposed)\n                ObjectDisposedException.ThrowIf(_disposed, this);\n\n            if (_state != ServiceState.Stopped)\n                throw new InvalidOperationException(\"DNS Server is already running.\");\n\n            _state = ServiceState.Starting;\n\n            //bind on all local end points","sourceCodeStart":6605,"sourceCodeEnd":6641,"githubUrl":"https://github.com/TechnitiumSoftware/DnsServer/blob/d0484b6c1e7439cdc53d67d81e9c876cda2ad756/DnsServerCore/Dns/DnsServer.cs#L6605-L6641","documentation":"Thrown by ValidateQuicSupport when QuicConnection.IsSupported is false and IPv6 IS supported. QuicConnection.IsSupported requires a runtime/OS combination that ships System.Net.Quic: Windows 11 build 22000+, Windows Server 2022+, or Linux with libmsquic installed.","triggerScenarios":"Running an older .NET runtime without built-in QUIC; running on Windows 10/Server 2019; Linux without the libmsquic native dependency installed.","commonSituations":"Stock Ubuntu/Debian missing libmsquic.so; .NET 6 or earlier runtime (QUIC is .NET 7+); Alpine without musl libmsquic; container built on a minimal base lacking the native library.","solutions":["On Linux, install libmsquic matching your distro/arch (apt install libmsquic or the Microsoft package).","Upgrade the .NET runtime to 7.0+ (preferably the LTS the server targets).","On Windows, run Windows 11 (22000+) or Windows Server 2022+.","If you cannot satisfy the requirement, disable DoQ and DoH3 listeners."],"exampleFix":"# before: libmsquic missing on Ubuntu\n# (server throws on StartAsync with DoQ enabled)\n\n# after\nwget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg\n# add repo, then:\nsudo apt-get update && sudo apt-get install -y libmsquic","handlingStrategy":"validation","validationCode":"bool QuicAvailable => System.Net.Quic.QuicConnection.IsSupported;\n// gate DoQ/DoH3 enablement on QuicAvailable","typeGuard":"static bool IsQuicSupportedOnRuntime() => System.Net.Quic.QuicConnection.IsSupported;","tryCatchPattern":"try { server.ValidateQuicSupport(\"DNS-over-QUIC\"); server.EnableDoQ = true; }\ncatch (DnsServerException ex) when (ex.Message.Contains(\"libmsquic\")) { log.Warn(\"Install libmsquic or upgrade .NET/runtime; disabling QUIC\"); server.EnableDoQ = false; }","preventionTips":["Install libmsquic on Linux hosts and images.","Run a .NET runtime version that ships QUIC (7.0+).","Feature-detect QuicConnection.IsSupported before enabling DoQ/DoH3."],"tags":["quic","libmsquic","platform","runtime","doq"],"backgroundTag":null,"analyzedSha":"d0484b6c1e7439cdc53d67d81e9c876cda2ad756","analyzedAt":"2026-08-13T22:57:35.508Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}