TechnitiumSoftware/DnsServer · critical · InvalidDataException
DNS Server Cluster config version not supported.
Error message
DNS Server Cluster config version not supported.
What it means
Thrown by ClusterManager.ReadConfigFrom(Stream) when the version byte (read after the 'CL' magic) does not match any supported case (currently only version 1 is implemented). This is a forward-compatibility guard: a newer server wrote a config format this build cannot parse, so it refuses rather than misread fields. WriteConfigTo always writes version 1.
Source
Thrown at DnsServerCore/Cluster/ClusterManager.cs:396
Dictionary<int, ClusterNode> clusterNodes = null;
int count = bR.ReadByte();
if (count > 0)
{
clusterNodes = new Dictionary<int, ClusterNode>(count);
for (int i = 0; i < count; i++)
{
ClusterNode node = new ClusterNode(this, bR);
clusterNodes.TryAdd(node.Id, node);
}
}
_clusterNodes = clusterNodes;
break;
default:
throw new InvalidDataException("DNS Server Cluster config version not supported.");
}
}
private void WriteConfigTo(Stream s)
{
BinaryWriter bW = new BinaryWriter(s);
bW.Write(Encoding.ASCII.GetBytes("CL")); //format
bW.Write((byte)1); //version
bW.Write(_clusterDomain);
bW.Write(_heartbeatRefreshIntervalSeconds);
bW.Write(_heartbeatRetryIntervalSeconds);
bW.Write(_configRefreshIntervalSeconds);
bW.Write(_configRetryIntervalSeconds);
s.WriteDateTime(_configLastSynced);
IReadOnlyDictionary<int, ClusterNode> clusterNodes = _clusterNodes;View on GitHub (pinned to d0484b6c1e)
Solutions
- Upgrade all cluster nodes to the same (newer) server version that understands the config format.
- Re-initialize the cluster from scratch after aligning versions, deleting the incompatible config.
- Keep all cluster members on the exact same Technitium version to avoid format mismatches.
Defensive patterns
Strategy: try-catch
Try / catch
try
{
clusterManager.Load();
}
catch (InvalidDataException ex) when (ex.Message.Contains("Cluster config version not supported"))
{
logger.LogError(ex, "Cluster config version unsupported; upgrade all nodes to the same version.");
NotifyAdminUpgradeRequired();
} Prevention
- Run all cluster nodes on the exact same Technitium version.
- Avoid downgrading after a cluster is configured on a newer version.
- Plan version upgrades across the whole cluster simultaneously.
When it happens
Trigger: Loading a cluster config that was saved by a newer Technitium DNS Server release which bumped the cluster config version, while the running binary only understands version 1.
Common situations: Downgrading the server after a cluster was configured on a newer version; copying a config between nodes running different server versions; a mixed-version cluster during a rolling upgrade.
Related errors
- DNS Server Cluster config file format is invalid.
- Invalid data or version not supported.
- Cannot add user to group: user can be member of max 255 grou
- Display name length cannot exceed 255 characters.
- Failed to initialize Cluster: the Cluster is already initial
AI-assisted analysis of TechnitiumSoftware/DnsServer@d0484b6c1e (2026-08-13).
Data as JSON: /api/errors/1455e7c76e977fed.
Report an issue: GitHub.