TechnitiumSoftware/DnsServer · error · DnsServerException
Failed to find '{memberZoneName}' member zone entry in '{zon
Error message
Failed to find '{memberZoneName}' member zone entry in '{zoneName}' Catalog zone: member zone does not exists. What it means
CatalogZone.GetMemberZoneDomain looks up a member zone by name in the internal _membersIndex dictionary (protected by a ReaderWriterLockSlim). If the lowercased memberZoneName is not found as a key, it throws DnsServerException. Catalog zones (RFC 9432) maintain a member-to-domain mapping; requesting a member zone that has not been added/registered produces this error.
Source
Thrown at DnsServerCore/Dns/Zones/CatalogZone.cs:357
_dnsServer.AuthZoneManager.SetRecord(_name, record);
}
}
private string GetMemberZoneDomain(string memberZoneName = null)
{
if (memberZoneName is null)
{
return _name;
}
else
{
memberZoneName = memberZoneName.ToLowerInvariant();
_membersIndexLock.EnterReadLock();
try
{
if (!_membersIndex.TryGetValue(memberZoneName, out string memberZoneDomain))
throw new DnsServerException("Failed to find '" + memberZoneName + "' member zone entry in '" + ToString() + "' Catalog zone: member zone does not exists.");
return memberZoneDomain;
}
finally
{
_membersIndexLock.ExitReadLock();
}
}
}
private string GetDomainWithLabel(string domain)
{
Span<byte> buffer = stackalloc byte[8];
int i = 0;
do
{
RandomNumberGenerator.Fill(buffer);View on GitHub (pinned to d0484b6c1e)
Solutions
- Verify the member zone name exists in the catalog by listing all member zones before referencing it.
- If the member zone should exist, trigger a catalog zone refresh/sync to rebuild the _membersIndex from the zone's PTR records.
- Use the exact member zone name string that was used when the member was added to the catalog.
Example fix
// before catalogZone.SetZoneTransferProperty(AuthZoneTransfer.Allow, memberZoneName: "myzone"); // throws: 'myzone' not in _membersIndex // after // first verify membership: // var members = catalogZone.ListMembers(); // confirm 'myzone' exists catalogZone.SetZoneTransferProperty(AuthZoneTransfer.Allow, memberZoneName: actualMemberName);
Defensive patterns
Strategy: validation
Validate before calling
// Verify member zone exists before referencing it
// (use the catalog zone's member listing API to check)
string memberNameLower = memberZoneName.ToLowerInvariant();
// catalogZone exposes member enumeration — verify before calling member-specific APIs
if (!catalogZone.MemberExists(memberNameLower))
throw new KeyNotFoundException($"Member zone '{memberZoneName}' not found in catalog '{catalogZone.Name}'."); Try / catch
try { catalogZone.SetZoneTransferProperty(value, memberZoneName); }
catch (DnsServerException ex) when (ex.Message.Contains("member zone entry"))
{ /* list available members, prompt user to select valid name */ } Prevention
- List catalog members before referencing them by name.
- Trigger catalog sync/refresh to rebuild the member index if members are missing.
- Use exact member zone names from the catalog's member list in API calls.
When it happens
Trigger: Calling any CatalogZone method that accepts a memberZoneName parameter (e.g., SetZoneMdValidationProperty, SetZoneTransferProperty) with a member zone name that is not present in the catalog's _membersIndex. The name is lowercased before lookup, so case differences are not the issue — the member zone simply does not exist.
Common situations: Referencing a member zone that was removed or never added to the catalog; using the zone's display name instead of the registered member zone name; stale references after a catalog re-sync; typos in the member zone name in API calls or scripts.
Related errors
- Failed to generate unique label for the given domain name '{
- Invalid SOA record.
- Cannot set records in Catalog zone.
- Cannot add record in Catalog zone.
- Cannot delete record in Catalog zone.
AI-assisted analysis of TechnitiumSoftware/DnsServer@d0484b6c1e (2026-08-13).
Data as JSON: /api/errors/98d605c8b58fd893.
Report an issue: GitHub.