{"record":{"id":"c8d4c77a8bec34e5","repo":"TechnitiumSoftware/DnsServer","slug":"svcbrecordinfo-format-version-not-supported","errorCode":null,"errorMessage":"SVCBRecordInfo format version not supported.","messagePattern":"SVCBRecordInfo format version not supported\\.","errorType":"exception","errorClass":"InvalidDataException","httpStatus":null,"severity":"critical","filePath":"DnsServerCore/Dns/ResourceRecords/SVCBRecordInfo.cs","lineNumber":60,"sourceCode":"        #endregion\n\n        #region protected\n\n        protected override void ReadExtendedRecordInfoFrom(BinaryReader bR)\n        {\n            byte version = bR.ReadByte();\n            switch (version)\n            {\n                case 0: //no extended info\n                    break;\n\n                case 1:\n                    _autoIpv4Hint = bR.ReadBoolean();\n                    _autoIpv6Hint = bR.ReadBoolean();\n                    break;\n\n                default:\n                    throw new InvalidDataException(\"SVCBRecordInfo format version not supported.\");\n            }\n        }\n\n        protected override void WriteExtendedRecordInfoTo(BinaryWriter bW)\n        {\n            bW.Write((byte)1); //version\n\n            bW.Write(_autoIpv4Hint);\n            bW.Write(_autoIpv6Hint);\n        }\n\n        #endregion\n\n        #region properties\n\n        public bool AutoIpv4Hint\n        {\n            get { return _autoIpv4Hint; }","sourceCodeStart":42,"sourceCodeEnd":78,"githubUrl":"https://github.com/TechnitiumSoftware/DnsServer/blob/d0484b6c1e7439cdc53d67d81e9c876cda2ad756/DnsServerCore/Dns/ResourceRecords/SVCBRecordInfo.cs#L42-L78","documentation":"Thrown by SVCBRecordInfo.ReadExtendedRecordInfoFrom when the version byte is not 0 or 1. Version 0 means no extended info (legacy SVCB/HTTPS records); version 1 adds the auto-IPv4-hint and auto-IPv6-hint flags (current writer). The default rejects other versions so the boolean flags are not misread from a corrupt or future-format stream.","triggerScenarios":"Deserializing an SVCB/HTTPS record whose extended-info version byte is outside {0,1}, from a corrupt file, truncated stream, or a file written by an incompatible build.","commonSituations":"Downgrade across an SVCBRecordInfo format change; corrupt zone store; importing SVCB/HTTPS records from a much newer build.","solutions":["Restore the zone from a backup written by a compatible build.","Re-create the SVCB/HTTPS records via the web console or zone import.","Upgrade to the build that wrote the file, export as a standard zone file, then re-import on the target build."],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try { svcb.Load(); }\ncatch (InvalidDataException ex) when (ex.Message == \"SVCBRecordInfo format version not supported.\")\n{ _log.Error(\"SVCB/HTTPS record store incompatible; restore zone from backup or re-import.\"); }","preventionTips":["Back up zones containing SVCB/HTTPS records before version changes.","Re-export as text zone files before downgrading."],"tags":["serialization","svcb-record","https-record","version","deserialization"],"backgroundTag":null,"analyzedSha":"d0484b6c1e7439cdc53d67d81e9c876cda2ad756","analyzedAt":"2026-08-13T22:57:35.508Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}