TechnitiumSoftware/DnsServer · critical · InvalidDataException
AuthRecordInfo format version not supported.
Error message
AuthRecordInfo format version not supported.
What it means
Thrown by AuthRecordInfo.ReadOldFormatFrom (the legacy deserializer reached when the on-disk version byte is < 9) when the version byte does not match any known case. Each case in the switch migrates an older AuthRecordInfo binary format; the default rejects any unrecognized version so a corrupt or future-format file fails loudly instead of being misread. This is the authoritative-record (zone) metadata persistence layer.
Source
Thrown at DnsServerCore/Dns/ResourceRecords/AuthRecordInfo.cs:223
info.ZoneTransferProtocol = zoneTransferProtocol;
if (tsigKeyName.Length > 0)
info.TsigKeyName = tsigKeyName;
}
}
if (version >= 8)
{
bool useSoaSerialDateScheme = bR.ReadBoolean();
if (this is SOARecordInfo info)
info.UseSoaSerialDateScheme = useSoaSerialDateScheme;
}
}
break;
default:
throw new InvalidDataException("AuthRecordInfo format version not supported.");
}
}
#endregion
#region protected
protected abstract void ReadRecordInfoFrom(BinaryReader bR);
protected abstract void WriteRecordInfoTo(BinaryWriter bW);
#endregion
#region public
public void WriteTo(BinaryWriter bW)
{
bW.Write((byte)9); //versionView on GitHub (pinned to d0484b6c1e)
Solutions
- Restore the zone file from backup; the version byte mismatch usually means corruption or an incompatible file.
- If this follows a server downgrade, upgrade back to the build that wrote the file, export the zone as a standard zone file, then re-import on the target build.
- Delete and recreate the affected zone if no clean copy exists, then reload authoritative records from a transferred/cached source.
Defensive patterns
Strategy: try-catch
Try / catch
// Wrap zone load; on legacy-format failure, fall back to text import or backup.
try { zone.Load(); }
catch (InvalidDataException ex) when (ex.Message == "AuthRecordInfo format version not supported.")
{
_log.Error("Zone store incompatible/corrupt; restoring from backup or re-importing.");
zone.RestoreFromBackupOrTextImport();
} Prevention
- Keep zone backups; binary zone stores are version-coupled to the build that wrote them.
- Export zones as standard text zone files before any server downgrade.
- Never mix zone files across server builds.
When it happens
Trigger: Loading a zone file whose AuthRecordInfo header carries a version byte outside the handled set, or a file whose first byte was corrupted/truncated so the version reads as garbage. Triggered on zone load, import, or DNSSEC re-sign that re-reads records.
Common situations: Downgrading the DNS server to an older build that does not understand a newer zone format; a partially-written zone file from a crash; manual edits to the binary zone store.
Related errors
- GenericRecordInfo format version not supported.
- HistoryRecordInfo format version not supported.
- SOARecordInfo 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/fddeb337aae38898.
Report an issue: GitHub.