{"record":{"id":"98d605c8b58fd893","repo":"TechnitiumSoftware/DnsServer","slug":"failed-to-find-memberzonename-member-zone-entr","errorCode":null,"errorMessage":"Failed to find '{memberZoneName}' member zone entry in '{zoneName}' Catalog zone: member zone does not exists.","messagePattern":"Failed to find '(.+?)' member zone entry in '(.+?)' Catalog zone: member zone does not exists\\.","errorType":"exception","errorClass":"DnsServerException","httpStatus":null,"severity":"error","filePath":"DnsServerCore/Dns/Zones/CatalogZone.cs","lineNumber":357,"sourceCode":"                _dnsServer.AuthZoneManager.SetRecord(_name, record);\n            }\n        }\n\n        private string GetMemberZoneDomain(string memberZoneName = null)\n        {\n            if (memberZoneName is null)\n            {\n                return _name;\n            }\n            else\n            {\n                memberZoneName = memberZoneName.ToLowerInvariant();\n\n                _membersIndexLock.EnterReadLock();\n                try\n                {\n                    if (!_membersIndex.TryGetValue(memberZoneName, out string memberZoneDomain))\n                        throw new DnsServerException(\"Failed to find '\" + memberZoneName + \"' member zone entry in '\" + ToString() + \"' Catalog zone: member zone does not exists.\");\n\n                    return memberZoneDomain;\n                }\n                finally\n                {\n                    _membersIndexLock.ExitReadLock();\n                }\n            }\n        }\n\n        private string GetDomainWithLabel(string domain)\n        {\n            Span<byte> buffer = stackalloc byte[8];\n            int i = 0;\n\n            do\n            {\n                RandomNumberGenerator.Fill(buffer);","sourceCodeStart":339,"sourceCodeEnd":375,"githubUrl":"https://github.com/TechnitiumSoftware/DnsServer/blob/d0484b6c1e7439cdc53d67d81e9c876cda2ad756/DnsServerCore/Dns/Zones/CatalogZone.cs#L339-L375","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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."],"exampleFix":"// before\ncatalogZone.SetZoneTransferProperty(AuthZoneTransfer.Allow, memberZoneName: \"myzone\");\n// throws: 'myzone' not in _membersIndex\n\n// after\n// first verify membership:\n// var members = catalogZone.ListMembers(); // confirm 'myzone' exists\ncatalogZone.SetZoneTransferProperty(AuthZoneTransfer.Allow, memberZoneName: actualMemberName);","handlingStrategy":"validation","validationCode":"// Verify member zone exists before referencing it\n// (use the catalog zone's member listing API to check)\nstring memberNameLower = memberZoneName.ToLowerInvariant();\n// catalogZone exposes member enumeration — verify before calling member-specific APIs\nif (!catalogZone.MemberExists(memberNameLower))\n    throw new KeyNotFoundException($\"Member zone '{memberZoneName}' not found in catalog '{catalogZone.Name}'.\");","typeGuard":null,"tryCatchPattern":"try { catalogZone.SetZoneTransferProperty(value, memberZoneName); }\ncatch (DnsServerException ex) when (ex.Message.Contains(\"member zone entry\"))\n{ /* list available members, prompt user to select valid name */ }","preventionTips":["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."],"tags":["dns","catalog-zone","rfc-9432","member-zone","lookup"],"backgroundTag":null,"analyzedSha":"d0484b6c1e7439cdc53d67d81e9c876cda2ad756","analyzedAt":"2026-08-13T22:57:35.508Z","schemaVersion":2},"datasetVersion":"2026-08-14T00:17:13.853Z"}