TechnitiumSoftware/DnsServer · error · ArgumentOutOfRangeException
EDNS Client Subnet IPv4 prefix length cannot be greater than
Error message
EDNS Client Subnet IPv4 prefix length cannot be greater than 32.
What it means
Thrown by the EDnsClientSubnetIPv4PrefixLength property setter when the byte value exceeds 32. An IPv4 prefix length cannot exceed 32 bits (the full address width). The value is used for EDNS Client Subnet (ECS) responses to clients.
Source
Thrown at DnsServerCore/Dns/DnsServer.cs:7346
_cacheZoneManager.DeleteEDnsClientSubnetData();
}
catch (Exception ex)
{
_log.Write(ex);
}
});
}
}
}
}
public byte EDnsClientSubnetIPv4PrefixLength
{
get { return _eDnsClientSubnetIPv4PrefixLength; }
set
{
if (value > 32)
throw new ArgumentOutOfRangeException(nameof(EDnsClientSubnetIPv4PrefixLength), "EDNS Client Subnet IPv4 prefix length cannot be greater than 32.");
_eDnsClientSubnetIPv4PrefixLength = value;
}
}
public byte EDnsClientSubnetIPv6PrefixLength
{
get { return _eDnsClientSubnetIPv6PrefixLength; }
set
{
if (value > 64)
throw new ArgumentOutOfRangeException(nameof(EDnsClientSubnetIPv6PrefixLength), "EDNS Client Subnet IPv6 prefix length cannot be greater than 64.");
_eDnsClientSubnetIPv6PrefixLength = value;
}
}
public NetworkAddress EDnsClientSubnetIpv4OverrideView on GitHub (pinned to d0484b6c1e)
Solutions
- Set the value to 32 or less (commonly /24 for ECS privacy).
- Verify the config field is for IPv4, not IPv6.
Example fix
// before server.EDnsClientSubnetIPv4PrefixLength = 56; // throws // after server.EDnsClientSubnetIPv4PrefixLength = 24;
Defensive patterns
Strategy: validation
Validate before calling
byte v4Prefix = (byte)Math.Min(value, 32); server.EDnsClientSubnetIPv4PrefixLength = v4Prefix;
Type guard
static bool IsValidV4Prefix(byte p) => p <= 32;
Try / catch
try { server.EDnsClientSubnetIPv4PrefixLength = value; }
catch (ArgumentOutOfRangeException) { server.EDnsClientSubnetIPv4PrefixLength = 24; } Prevention
- Remember IPv4 prefixes max at 32; never reuse IPv6 prefix values here.
- Clamp config values to the valid range.
When it happens
Trigger: Setting server.EDnsClientSubnetIPv4PrefixLength to a byte > 32.
Common situations: Confusing IPv4 and IPv6 prefix lengths; loading a config with a typo; copying a /64-style IPv6 value into the IPv4 field.
Related errors
- EDNS Client Subnet IPv4 Override must be an IPv4 network add
- EDNS Client Subnet IPv6 prefix length cannot be greater than
- EDNS Client Subnet IPv6 Override must be an IPv6 network add
- Invalid EDNS UDP payload size: valid range is 512-4096 bytes
- QPM Prefix Limits for IPv4 cannot have more than 255 entries
AI-assisted analysis of TechnitiumSoftware/DnsServer@d0484b6c1e (2026-08-13).
Data as JSON: /api/errors/827a96d76bf8e8f3.
Report an issue: GitHub.