TechnitiumSoftware/DnsServer · critical · InvalidDataException
SOARecordInfo format version not supported.
Error message
SOARecordInfo format version not supported.
What it means
Thrown by SOARecordInfo.ReadExtendedRecordInfoFrom when the version byte is neither 1 nor 2. Version 1 carries zone-transfer protocol, TSIG key name, and the SOA-serial-date flag; version 2 slimmed down to just the serial-date flag (current writer). The default rejects any other version to prevent misreading the extended block that precedes the SOA RDATA.
Source
Thrown at DnsServerCore/Dns/ResourceRecords/SOARecordInfo.cs:83
NameServerAddress[] primaryNameServers = new NameServerAddress[count];
for (int i = 0; i < primaryNameServers.Length; i++)
primaryNameServers[i] = new NameServerAddress(bR);
_primaryNameServers = primaryNameServers;
}
_zoneTransferProtocol = (DnsTransportProtocol)bR.ReadByte();
_tsigKeyName = bR.BaseStream.ReadShortString();
_useSoaSerialDateScheme = bR.ReadBoolean();
break;
case 2:
_useSoaSerialDateScheme = bR.ReadBoolean();
break;
default:
throw new InvalidDataException("SOARecordInfo format version not supported.");
}
}
protected override void WriteExtendedRecordInfoTo(BinaryWriter bW)
{
bW.Write((byte)2); //version
bW.Write(_useSoaSerialDateScheme);
}
#endregion
#region properties
public override bool Disabled
{
get { return base.Disabled; }
setView on GitHub (pinned to d0484b6c1e)
Solutions
- Restore the zone (especially the SOA) from a compatible backup.
- Re-create the SOA record manually with correct primary nameserver, admin email, and serial, then reload the zone.
- Upgrade to the build that wrote the file, export the zone as text, then re-import on the target build.
Defensive patterns
Strategy: try-catch
Try / catch
try { soa.Load(); }
catch (InvalidDataException ex) when (ex.Message == "SOARecordInfo format version not supported.")
{ _log.Error("SOA store incompatible; restore zone from backup or recreate SOA."); } Prevention
- Always keep a text export of zones including SOA before downgrading.
- Document primary NS, admin email, and serial so a SOA can be rebuilt if the binary store fails.
When it happens
Trigger: Deserializing a SOA record whose extended-info version byte is outside {1,2}, from a corrupt file, a truncated stream, or a file produced by an incompatible server build.
Common situations: Downgrade after the v1->v2 SOARecordInfo change; zone file corruption; restore of a zone from an incompatible build.
Related errors
- AuthRecordInfo format version not supported.
- GenericRecordInfo format version not supported.
- HistoryRecordInfo format version not supported.
- CacheRecordInfo format version not supported.
- NSRecordInfo format version not supported.
AI-assisted analysis of TechnitiumSoftware/DnsServer@d0484b6c1e (2026-08-13).
Data as JSON: /api/errors/72a7cc1938f652a8.
Report an issue: GitHub.