TechnitiumSoftware/DnsServer · critical · InvalidDataException

SVCBRecordInfo format version not supported.

Error message

SVCBRecordInfo format version not supported.

What it means

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.

Source

Thrown at DnsServerCore/Dns/ResourceRecords/SVCBRecordInfo.cs:60

        #endregion

        #region protected

        protected override void ReadExtendedRecordInfoFrom(BinaryReader bR)
        {
            byte version = bR.ReadByte();
            switch (version)
            {
                case 0: //no extended info
                    break;

                case 1:
                    _autoIpv4Hint = bR.ReadBoolean();
                    _autoIpv6Hint = bR.ReadBoolean();
                    break;

                default:
                    throw new InvalidDataException("SVCBRecordInfo format version not supported.");
            }
        }

        protected override void WriteExtendedRecordInfoTo(BinaryWriter bW)
        {
            bW.Write((byte)1); //version

            bW.Write(_autoIpv4Hint);
            bW.Write(_autoIpv6Hint);
        }

        #endregion

        #region properties

        public bool AutoIpv4Hint
        {
            get { return _autoIpv4Hint; }

View on GitHub (pinned to d0484b6c1e)

Solutions

  1. Restore the zone from a backup written by a compatible build.
  2. Re-create the SVCB/HTTPS records via the web console or zone import.
  3. Upgrade to the build that wrote the file, export as a standard zone file, then re-import on the target build.
Defensive patterns

Strategy: try-catch

Try / catch

try { svcb.Load(); }
catch (InvalidDataException ex) when (ex.Message == "SVCBRecordInfo format version not supported.")
{ _log.Error("SVCB/HTTPS record store incompatible; restore zone from backup or re-import."); }

Prevention

When it happens

Trigger: 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.

Common situations: Downgrade across an SVCBRecordInfo format change; corrupt zone store; importing SVCB/HTTPS records from a much newer build.

Related errors


AI-assisted analysis of TechnitiumSoftware/DnsServer@d0484b6c1e (2026-08-13). Data as JSON: /api/errors/c8d4c77a8bec34e5. Report an issue: GitHub.