OpenKeel: the sovereign French Cloud solution of the inherent group, with a European reach Discover inherent

Reverse-spec · Services

designate — Errors

Errors — designate — branch stable/2026.2

Branch stable/2026.2 @ e3dd774db145 — repository https://opendev.org/openstack/designate — analysed on 2026-10-29

Exception → HTTP translation

Designate has a single translation point: every exception class carries its HTTP status (error_code) and a machine-readable error_type (designate/exceptions.py:18). The faultwrapper middleware turns any DesignateException that reaches the API, including the ones raised in designate-central and re-raised in the API process by oslo.messaging, into:

{"code": 409, "type": "duplicate_zone", "message": "Duplicate Zone", "request_id": "req-1c8f…"}

(designate/api/middleware.py:270). Exceptions travel back from central with their class because designate.exceptions is in allowed_remote_exmods (designate/rpc.py:46); @rpc.expected_exceptions() marks the expected ones so that the RPC server does not log them (designate/common/decorators/rpc.py:52).

SituationStatusBodyDefined at
DesignateException subclassits error_code{code, type, message[, errors], request_id}designate/api/middleware.py:270
object validation (InvalidObject with a ValidationErrorList) on /v2400{code: 400, type: "invalid_object", errors: {"errors": [{path, message, validator, validator_value, raw}]}, request_id} (no message)designate/api/middleware.py:351
oslo_messaging.MessagingTimeout (central did not answer within rpc_response_timeout)504{code: 504, type: "timeout", request_id}designate/api/middleware.py:289
any other exception (NotImplementedError for json-patch, TypeError, a remote non-Designate exception…)500{code: 500, type: "unknown", request_id}designate/api/middleware.py:297
X-Identity-Status: Invalid (keystonemiddleware with delay_auth_decision)401empty bodydesignate/api/middleware.py:142
a context flag refused by policy (all_projects, sudo, edit managed, hard delete)403empty bodydesignate/api/middleware.py:168
maintenance mode503, Retry-After: 60empty bodydesignate/api/middleware.py:248
Pecan routing 404 / 405404 / 405{code, type: "not_found" / "method_not_allowed", message}designate/api/v2/controllers/errors.py:27
keystonemiddleware: missing or invalid token401keystonemiddleware's own bodyetc/designate/api-paste.ini:52

Exceptions whose expected flag is false (for example InvalidTTL, ZoneHasSubZone, InvaildZoneTransfer, ZoneShared) are logged with a stack trace by the API (designate/api/middleware.py:307) although they are ordinary 400s. With notify_api_faults = True, every error also emits a dns.api.fault notification (designate/notifications.py:33).

Clients rely on the body: python-designateclient builds its exceptions from message, code, type, errors and request_id and ignores other keys (python-designateclient:designateclient/exceptions.py:37); when message is empty it joins errors[].message or uses type (python-designateclient:designateclient/exceptions.py:49).

Errors returned by the API, by situation

ExceptionHTTPtype / messageSituationRaised atSeen by the client as
InvalidUUID400invalid_uuid, Invalid UUID zone_id: <value>a path id is not a UUIDdesignate/utils.py:171JSON error
NotFound404not_foundwrong number of path segments (/v2/zones/<id>/foo)designate/utils.py:158JSON error
UnsupportedContentType415unsupported_content_type, Content-type must be application/jsonbody sent with another content type; zone import neither text/dns nor JSONdesignate/api/v2/patches.py:35, designate/api/v2/controllers/zones/tasks/imports.py:96JSON error
EmptyRequestBody / InvalidJson400empty_request_body / invalid_jsonno body / unparsable JSONdesignate/api/v2/patches.py:43, designate/api/v2/patches.py:49JSON error
InvalidObject400invalid_object + errorsunknown or read-only key, wrong type, value out of range, missing required field, unparsable record datadesignate/objects/adapters/base.py:189, designate/objects/base.py:266, designate/objects/recordset.py:208JSON error with errors
BadRequest400Duplicate filters … / Invalid filters …repeated or unknown query filterdesignate/api/v2/controllers/rest.py:70JSON error
InvalidLimit, InvalidSortDir, InvalidSortKey, InvalidMarker, MarkerNotFound400invalid_limit…bad paging parameters, marker not founddesignate/utils.py:255, designate/utils.py:264, designate/utils.py:273, designate/storage/sqlalchemy/utils.py:130JSON error
InvalidZoneName400invalid_zone_name, Name too long / More than one label is required / Invalid TLD / Zone name cannot be the same as a TLD / Blacklisted zone namezone name checks at creationdesignate/central/service.py:131, designate/central/service.py:138, designate/central/service.py:152, designate/central/service.py:163, designate/central/service.py:171JSON error
InvalidTTL400invalid_ttl, TTL is below the minimum: <n>zone or recordset TTL below min_ttl without use_low_ttldesignate/central/service.py:386JSON error
DuplicateZone409duplicate_zone, Duplicate Zone / Zone already exists, owned by a different tenantsame name in the same pool, or owned by another project in any pool; PTR zone name taken by another projectdesignate/storage/sqlalchemy/base.py:243, designate/central/service.py:350, designate/central/service.py:2148JSON error; Neutron maps it to "zone exists" when creating PTR zones
IllegalChildZone403illegal_child, Unable to create subzone in another tenants zonethe zone would be a sub-zone of another project's zonedesignate/central/service.py:363, designate/central/service.py:893JSON error
IllegalParentZone403illegal_parent, Unable to create zone because another tenant owns a subzone of the zonethe zone would be a parent of another project's zonedesignate/central/service.py:374, designate/central/service.py:905JSON error
OverQuota413over_quota, Quota exceeded for <resource>.zones, recordsets per zone, records per zone, records per recordset, export sizedesignate/quota/base.py:48JSON error; Neutron raises ExternalDNSOverQuota (neutron:neutron/services/externaldns/drivers/designate/driver.py:74)
NoValidPoolFound404no_valid_pool_found, There are no pools that matched your requestno pool passed the scheduler filters (attributes)designate/scheduler/base.py:84JSON error
MultiplePoolsFound500multiple_pools_foundthe filters left several pools (misconfigured filter list)designate/scheduler/base.py:82JSON error
NoServersConfigured500no_servers_configuredthe chosen pool has no NS records (designate-manage pool update not run)designate/central/service.py:918JSON error, LOG.critical
BadRequest400Zones in non-default pools require a TSIG key with scope=POOL …zone scheduled to a non-default pool without a POOL TSIG keydesignate/central/service.py:403JSON error
Forbidden403forbidden, This operation is not allowed for catalog zones.any write on a CATALOG zone through the APIdesignate/central/service.py:3190JSON error
Forbidden403forbiddenpolicy refused (any rule)designate/policy.py:68JSON error
InvalidTokenScope403invalid_token_scopesystem-scoped token on a project-scoped rule with enforce_scopedesignate/policy.py:76JSON error
ZoneNotFound404zone_not_found, Could not find Zoneunknown id, deleted zone, or zone of another project not shared with the callerdesignate/central/service.py:990, designate/central/service.py:1408JSON error; clients treat it as "gone" (Heat delete completion)
BadRequest400Can not update a deleting zonezone or recordset write while the zone is DELETE/PENDINGdesignate/api/v2/controllers/zones/__init__.py:143, designate/central/service.py:1521JSON error
BadRequest400Moving a zone between tenants is not allowed / Renaming a zone is not allowedPATCH changing project_id or namedesignate/central/service.py:1077, designate/central/service.py:1081JSON error
ZoneHasSubZone400zone_has_sub_zone, Please delete any subzones before deleting this zonedelete of a zone with children in any projectdesignate/central/service.py:1159JSON error
ZoneShared400zone_is_shareddelete of a shared zone without X-Designate-Delete-Sharesdesignate/central/service.py:1148JSON error
BadRequest400Creating a SOA recordset is not allowed / Updating SOA recordsets is not allowed / Deleting a SOA recordset is not allowed / Updating a root zone NS record is not allowedSOA and apex NS are manageddesignate/api/v2/controllers/zones/recordsets.py:92, designate/api/v2/controllers/zones/recordsets.py:134, designate/api/v2/controllers/zones/recordsets.py:176, designate/api/v2/controllers/zones/recordsets.py:142JSON error
BadRequest400Managed records may not be updated / … deletedwrite on a managed recordset without the managed flagdesignate/api/v2/controllers/zones/recordsets.py:130, designate/central/service.py:1848JSON error; Neutron retries with its admin client (neutron:neutron/services/externaldns/drivers/designate/driver.py:156)
InvalidRecordSetName400invalid_recordset_name, Name too longname longer than max_recordset_name_lendesignate/central/service.py:185JSON error
InvalidRecordSetLocation400invalid_recordset_location, RecordSet is not contained within it's parent zone / CNAME recordsets may not be created at the zone apex / CNAME recordsets may not share a name with any other records / RecordSet belongs in a child zone: <zone>placement rulesdesignate/central/service.py:190, designate/central/service.py:197, designate/central/service.py:213, designate/central/service.py:248JSON error
BadRequest400CNAME recordsets may not have more than 1 recordCNAME with several recordsdesignate/central/service.py:261JSON error
BadRequest400TLSA recordset name must follow the format _port._protocol.domain …TLSA namedesignate/api/v2/controllers/zones/recordsets.py:41JSON error
BadRequest400Moving a recordset between zones is not allowed / Changing a recordsets type is not allowedPUT changing zone_id or typedesignate/central/service.py:1728, designate/central/service.py:1732JSON error
DuplicateRecordSet / DuplicateRecord409duplicate_recordset / duplicate_recordsame name and type in the zone; same data twice in a recordset (md5 of recordset_id:data)designate/storage/sqlalchemy/base.py:243JSON error; Neutron raises DuplicateRecordSet (neutron:neutron/services/externaldns/drivers/designate/driver.py:72)
RecordSetNotFound404recordset_not_foundunknown recordset, or recordset of another zonedesignate/central/service.py:1617JSON error
BadRequest400Floating IP <key> is not in the format of <region>:<uuid>malformed reverse keydesignate/api/v2/controllers/floatingips.py:35JSON error
NotFound404not_found, FloatingIP <id> in <region> is not associated for project "<project>" / No such FloatingIP <region>:<id>the floating IP is not the caller's in Neutron; unset of a PTR that does not existdesignate/central/service.py:2004, designate/central/service.py:2176JSON error
NeutronCommunicationFailure504neutron_communication_failurelisting floating IPs in Neutron faileddesignate/network_api/neutron.py:87JSON error
NetworkEndpointNotFound403no_endpointno Neutron endpoint for the region in the catalogdesignate/network_api/base.py:100JSON error
InvalidProject400invalid_project, <id> is not a valid project ID.Keystone answered 404 for the share target or the quota projectdesignate/common/keystone.py:75JSON error
KeystoneCommunicationFailure504keystone_communication_failureno Keystone v3 endpointdesignate/common/keystone.py:48JSON error
BadRequest400Cannot share the zone with the zone owner.share target = ownerdesignate/central/service.py:1298JSON error
DuplicateSharedZone409duplicate_shared_zonezone already shared with that projectdesignate/storage/sqlalchemy/base.py:243JSON error
SharedZoneHasSubZone / SharedZoneHasRecordSets400Please delete all subzones owned by project <p> … / Please delete all recordsets owned by project <p> …unshare while the target owns objects in the zonedesignate/central/service.py:1329, designate/central/service.py:1343JSON error
InvaildZoneTransfer400invalid_zone_transfer_request, Zone Transfer Request has been used / Zone Transfer Request Invalidaccept of a non-ACTIVE requestdesignate/central/service.py:2783, designate/central/service.py:2785JSON error
IncorrectZoneTransferKey403invalid_key, Key does not match stored key for requestwrong keydesignate/central/service.py:2789JSON error
DuplicateZoneTransferRequest409duplicate_zone_transfer_requesta request already exists for the zonedesignate/storage/sqlalchemy/__init__.py:2082JSON error
InvalidOperation400invalid_operation, Zone cannot be changed / pool must not contain zonesPATCH of a transfer request's zone_id; delete of a pool with zonesdesignate/central/service.py:2742, designate/central/service.py:2533JSON error
LastServerDeleteNotAllowed400last_server_delete_not_allowedpool update removing every NS recorddesignate/central/service.py:2477JSON error
BadRequest400Target pool must be different for zone pool move / No valid pool selected / Target pool does not existpool movedesignate/api/v2/controllers/zones/tasks/pool_move.py:48, designate/central/service.py:1438, designate/central/service.py:1447JSON error
BadRequest400Can't XFR a non Secondary zone.xfr task on a PRIMARY zonedesignate/central/service.py:1222JSON error
BadRequest400Zone can not be exported synchronouslyexport file requested for a task without a designate:// locationdesignate/api/v2/controllers/zones/tasks/exports.py:44JSON error
BadRequest400The "zonefile" field is required when using application/json content type / Invalid JSON bodyJSON zone importdesignate/api/v2/controllers/zones/tasks/imports.py:85, designate/api/v2/controllers/zones/tasks/imports.py:83JSON error
InvalidTsigKey400invalid_tsigkey, Resource ID <id> is not a valid zone / … poolTSIG key scope target missingdesignate/central/service.py:710, designate/central/service.py:718JSON error
MissingProjectID401missing_project_id, A project ID must be specified when not using a project scoped token. / The all-projects flag must be used …write without a project (system token)designate/central/service.py:391, designate/api/v2/controllers/quotas.py:74JSON error with status 401
ReportNotFound404report_not_foundunknown admin counts criteriondesignate/central/service.py:1277JSON error
MethodNotAllowed405method_not_allowedverb not served on the pathdesignate/api/v2/controllers/errors.py:34JSON error
NotImplementedError (builtin)500unknownPATCH with Content-Type: application/json-patch+jsondesignate/api/v2/controllers/zones/__init__.py:158500
ValueError (builtin, Please supply a FQDN)500 [inferred]unknownrecordset name without trailing dot reaching central; the API adapter normally rejects it firstdesignate/central/service.py:180500
ConfigurationError500configuration_error, No service_catalog and no configured endpointsreverse API without catalog nor [network_api:neutron]/endpointsdesignate/network_api/base.py:50JSON error
status 500 from the handler500empty JSON ""abandon that did not delete the zone; pool move that did not leave the zone PENDINGdesignate/api/v2/controllers/zones/tasks/abandon.py:43, designate/api/v2/controllers/zones/tasks/pool_move.py:64500 without error body

The status codes and type values observed in the functional API tests are in [_rewrite/observed-errors_stable-2026.2.md](_rewrite/observed-errors_stable-2026.2.md).

Asynchronous errors

These never reach the client as an HTTP status. They show up as a resource status, a task message, or a log line.

WhereWhat the client seesSituationDefined at
zone status: ERROR, action keptGET /v2/zones/{id}fewer than threshold_percentage of the targets accepted the change (backend error, unreachable target), or the nameservers did not serve the new serial in time (poll_max_retries)designate/worker/tasks/zone.py:302, designate/worker/tasks/zone.py:661
zone action: CREATE, status: ERRORzone listed in error although it existedtoo many nameservers answered "no zone" during an update (NO_ZONE): the zone will be re-created by the recovery taskdesignate/central/service.py:2653
records status: ERRORrecordset status: ERRORthe zone push reported ERROR for a serial ≥ the records' serialdesignate/central/service.py:2617
zone ERROR forever—the error persists: worker_periodic_recovery re-pushes it every 120 s with no limitdesignate/worker/tasks/zone.py:896
zone stays PENDING—the worker cast was lost (worker down, RabbitMQ): recovered after max_prop_time (455 s) by worker_periodic_recoverydesignate/worker/tasks/zone.py:906
import task ERROR, messageGET /v2/zones/tasks/imports/{id}The $ORIGIN statement is required and must be the first statement in the zonefile. / Malformed zonefile. / An SOA record is required. / Duplicate zone. / TTL is below the minimum: <n> / Quota exceeded during zone import. / An undefined error occurred. <first 130 chars>designate/central/service.py:2922
import task stays PENDING—central stopped during the import threaddesignate/central/service.py:2895
export task ERRORmessage: Zone is too large to export / No suitable method for exportexport over api_export_size / synchronous export disableddesignate/worker/tasks/zone.py:989, designate/worker/tasks/zone.py:1001
transfer accept status: ERRORGET /v2/zones/tasks/transfer_accepts/{id}the zone is being deleted or the target project is over quota; the HTTP call also failsdesignate/central/service.py:2825
SECONDARY zone not refreshedtransferred_at unchangedXFRFailure: no master answered the AXFRdesignate/worker/tasks/zone.py:241
mdns REFUSED / NOTAUTH / SERVFAIL / no answerDNS servers cannot transfer the zoneunknown zone or forbidden (TSIG scope) → REFUSED; NOTIFY for an unknown zone → NOTAUTH; a single record too large → SERVFAIL; unknown TSIG key or bad signature → no answerdesignate/mdns/handler.py:257, designate/mdns/handler.py:124, designate/mdns/handler.py:354, designate/dnsmiddleware.py:94
sink: event ignoredno record createdzone_id not configured for the handler; invalid IP addressdesignate/notification_handler/nova.py:54, designate/notification_handler/base.py:135

Key log messages

LevelMessageSituationDefined at
CRITICALNo nameservers configured. Please create at least one nameserverzone creation in a pool without NS recordsdesignate/central/service.py:916
CRITICALBlacklist regex (%(pattern)s) took too long to evaluate against zone name (%(zone_name)s)a blacklist pattern exceeded 20 ms; the name is treated as blacklisteddesignate/central/service.py:282
WARNINGManaged Resource Tenant ID is not properly configuredmanaged_resource_tenant_id left at its zero defaultdesignate/central/service.py:109
INFOCould not %(action)s zone_name=… on enough targets. Updating status to ERRORbackend push faileddesignate/worker/tasks/zone.py:290
INFOCould not find serial=%(serial)d for zone_name=… on enough nameserverspolling faileddesignate/worker/tasks/zone.py:598
WARNINGFound %(len)d zones PENDING for more than %(sec)d secondsstuck zones picked up by recoverydesignate/worker/tasks/zone.py:914
ERRORTSIG key not found for target=…, skipping … / … for a nameserver in pool, skipping poll …a pool references a deleted TSIG keydesignate/worker/tasks/zone.py:87, designate/worker/tasks/zone.py:672
WARNINGNOTIFY for %(name)s from non-master server %(addr)s, refusing.NOTIFY from an unexpected addressdesignate/mdns/handler.py:147
ERRORUnknown TSIG key from %(host)s:%(port)d / Invalid TSIG signature from …DNS server and Designate disagree on the keydesignate/dnsmiddleware.py:95, designate/dnsmiddleware.py:103
WARNINGAborted AXFR of %(zone)s, a single RR … exceeded the max message size.oversized recorddesignate/mdns/handler.py:343
WARNINGUse of this API Method is DEPRECATED …pool written through the APIdesignate/api/v2/controllers/pools.py:69
ERRORMissing context in request, please check.error raised before the context middlewaredesignate/api/middleware.py:334

Exception catalogue

All classes of designate/exceptions.py, with inheritance resolved. "Expected" exceptions are not logged by the RPC server. Raise sites are the explicit raise statements; *NotFound and Duplicate* are also raised by the generic storage helpers through their exc_notfound / exc_dup arguments (designate/storage/sqlalchemy/base.py:280, designate/storage/sqlalchemy/base.py:243).

Exception (parent)HTTPtypeExpectedDefined atRaised at
DesignateException (Exception)500Nonenodesignate/exceptions.py:18
Backend (Exception)500Nonenodesignate/exceptions.py:35designate/backend/impl_pdns4.py:158, designate/backend/impl_pdns4.py:172, designate/backend/impl_ns1.py:56, designate/backend/impl_ns1.py:69 …
RelationNotLoaded (DesignateException)500relation_not_loadednodesignate/exceptions.py:39designate/objects/base.py:71
AdapterNotFound (DesignateException)500adapter_not_foundnodesignate/exceptions.py:56designate/objects/adapters/base.py:72
NSD4SlaveBackendError (Backend)500Nonenodesignate/exceptions.py:61
NotImplemented (DesignateException)500Nonenodesignate/exceptions.py:65
XFRFailure (DesignateException)500Nonenodesignate/exceptions.py:69designate/dnsutils.py:191
ConfigurationError (DesignateException)500configuration_errornodesignate/exceptions.py:73designate/producer/service.py:80, designate/backend/impl_pdns4.py:65, designate/backend/impl_infoblox.py:81, designate/backend/impl_nsd4.py:97 …
UnknownFailure (DesignateException)500unknown_failurenodesignate/exceptions.py:77
CommunicationFailure (DesignateException)504communication_failurenodesignate/exceptions.py:82
KeystoneCommunicationFailure (CommunicationFailure)504keystone_communication_failurenodesignate/exceptions.py:87designate/common/keystone.py:48
NeutronCommunicationFailure (CommunicationFailure)504neutron_communication_failurenodesignate/exceptions.py:94designate/network_api/neutron.py:87
NoFiltersConfigured (ConfigurationError)500no_filters_configurednodesignate/exceptions.py:101designate/scheduler/base.py:40, designate/scheduler/base.py:67
NoServersConfigured (ConfigurationError)500no_servers_configurednodesignate/exceptions.py:106designate/storage/sqlalchemy/__init__.py:2580, designate/central/service.py:918, designate/central/service.py:1456
MultiplePoolsFound (ConfigurationError)500multiple_pools_foundnodesignate/exceptions.py:111designate/scheduler/base.py:82
NoPoolTargetsConfigured (ConfigurationError)500no_pool_targets_configurednodesignate/exceptions.py:116designate/worker/service.py:79
OverQuota (DesignateException)413over_quotayesdesignate/exceptions.py:121designate/quota/base.py:48
QuotaResourceUnknown (DesignateException)500quota_resource_unknownnodesignate/exceptions.py:127designate/quota/impl_storage.py:64, designate/quota/base.py:42
InvalidObject (DesignateException)400invalid_objectyesdesignate/exceptions.py:131designate/objects/recordset.py:104, designate/objects/recordset.py:208, designate/objects/recordset.py:233, designate/objects/adapters/api_v2/recordset.py:88 …
BadAction (DesignateException)500bad_actionnodesignate/exceptions.py:137
BadRequest (DesignateException)400bad_requestyesdesignate/exceptions.py:141designate/dnsutils.py:92, designate/api/v2/controllers/floatingips.py:35, designate/api/v2/controllers/zones/recordsets.py:41, designate/api/v2/controllers/zones/recordsets.py:48 …
EmptyRequestBody (BadRequest)400empty_request_bodyyesdesignate/exceptions.py:147designate/api/v2/patches.py:43, designate/api/v2/patches.py:47
InvalidProject (BadRequest)400invalid_projectyesdesignate/exceptions.py:152designate/common/keystone.py:75
InvalidUUID (BadRequest)400invalid_uuidyesdesignate/exceptions.py:156designate/utils.py:171
NetworkEndpointNotFound (BadRequest)403no_endpointyesdesignate/exceptions.py:160designate/network_api/base.py:100
MarkerNotFound (BadRequest)400marker_not_foundyesdesignate/exceptions.py:165designate/storage/sqlalchemy/utils.py:130
ValueError (BadRequest)400value_erroryesdesignate/exceptions.py:169designate/objects/adapters/api_v2/base.py:121, designate/storage/sqlalchemy/base.py:305, designate/storage/sqlalchemy/base.py:365, designate/storage/sqlalchemy/base.py:440 …
InvalidMarker (BadRequest)400invalid_markeryesdesignate/exceptions.py:173designate/storage/sqlalchemy/utils.py:137
InvalidSortDir (BadRequest)400invalid_sort_diryesdesignate/exceptions.py:177designate/utils.py:264
InvalidLimit (BadRequest)400invalid_limityesdesignate/exceptions.py:181designate/utils.py:255, designate/utils.py:258
InvalidSortKey (BadRequest)400invalid_sort_keyyesdesignate/exceptions.py:185designate/storage/sqlalchemy/base.py:299, designate/storage/sqlalchemy/base.py:359, designate/utils.py:273
InvalidJson (BadRequest)400invalid_jsonyesdesignate/exceptions.py:189designate/api/v2/patches.py:49
InvalidOperation (BadRequest)400invalid_operationyesdesignate/exceptions.py:193designate/central/service.py:2533, designate/central/service.py:2742
UnsupportedAccept (BadRequest)406unsupported_acceptyesdesignate/exceptions.py:198
UnsupportedContentType (BadRequest)415unsupported_content_typeyesdesignate/exceptions.py:203designate/api/v2/patches.py:35, designate/api/v2/controllers/zones/tasks/imports.py:96
InvalidZoneName (DesignateException)400invalid_zone_nameyesdesignate/exceptions.py:208designate/central/service.py:131, designate/central/service.py:138, designate/central/service.py:152, designate/central/service.py:163 …
InvalidRecordSetName (DesignateException)400invalid_recordset_nameyesdesignate/exceptions.py:214designate/central/service.py:185
InvalidRecordSetLocation (DesignateException)400invalid_recordset_locationyesdesignate/exceptions.py:220designate/central/service.py:190, designate/central/service.py:197, designate/central/service.py:213, designate/central/service.py:248
InvaildZoneTransfer (DesignateException)400invalid_zone_transfer_requestnodesignate/exceptions.py:226designate/central/service.py:2783, designate/central/service.py:2785
InvalidTTL (DesignateException)400invalid_ttlnodesignate/exceptions.py:231designate/central/service.py:386
ZoneHasSubZone (DesignateException)400zone_has_sub_zonenodesignate/exceptions.py:236designate/central/service.py:1159
SharedZoneHasSubZone (DesignateException)400shared_zone_has_sub_zoneyesdesignate/exceptions.py:241designate/central/service.py:1329
SharedZoneHasRecordSets (DesignateException)400shared_zone_has_recordsetsyesdesignate/exceptions.py:247designate/central/service.py:1343
Forbidden (DesignateException)403forbiddenyesdesignate/exceptions.py:253designate/mdns/handler.py:197, designate/central/service.py:616, designate/central/service.py:634, designate/central/service.py:3190
IllegalChildZone (Forbidden)403illegal_childyesdesignate/exceptions.py:259designate/central/service.py:363, designate/central/service.py:893
IllegalParentZone (Forbidden)403illegal_parentyesdesignate/exceptions.py:263designate/storage/sqlalchemy/__init__.py:670, designate/central/service.py:374, designate/central/service.py:905
IncorrectZoneTransferKey (Forbidden)403invalid_keyyesdesignate/exceptions.py:267designate/central/service.py:2789
InvalidTokenScope (Forbidden)403invalid_token_scopeyesdesignate/exceptions.py:271designate/policy.py:76
Duplicate (DesignateException)409duplicateyesdesignate/exceptions.py:275
DuplicateServiceStatus (Duplicate)409duplicate_service_statusyesdesignate/exceptions.py:281designate/storage/sqlalchemy/__init__.py:2450, designate/storage/sqlalchemy/__init__.py:2461
DuplicateQuota (Duplicate)409duplicate_quotayesdesignate/exceptions.py:285designate/storage/sqlalchemy/__init__.py:80, designate/storage/sqlalchemy/__init__.py:126
DuplicateServer (Duplicate)409duplicate_serveryesdesignate/exceptions.py:289
DuplicateTsigKey (Duplicate)409duplicate_tsigkeyyesdesignate/exceptions.py:293designate/storage/sqlalchemy/__init__.py:232, designate/storage/sqlalchemy/__init__.py:278
InvalidTsigKey (BadRequest)400invalid_tsigkeyyesdesignate/exceptions.py:297designate/central/service.py:710, designate/central/service.py:718, designate/central/service.py:761, designate/central/service.py:769
DuplicateZone (Duplicate)409duplicate_zoneyesdesignate/exceptions.py:301designate/storage/sqlalchemy/__init__.py:427, designate/storage/sqlalchemy/__init__.py:502, designate/central/service.py:350, designate/central/service.py:2148
DuplicateTld (Duplicate)409duplicate_tldyesdesignate/exceptions.py:305designate/storage/sqlalchemy/__init__.py:157, designate/storage/sqlalchemy/__init__.py:202
DuplicateRecordSet (Duplicate)409duplicate_recordsetyesdesignate/exceptions.py:309designate/storage/sqlalchemy/__init__.py:1001, designate/storage/sqlalchemy/__init__.py:1079
DuplicateRecord (Duplicate)409duplicate_recordyesdesignate/exceptions.py:313designate/storage/sqlalchemy/__init__.py:1203, designate/storage/sqlalchemy/__init__.py:1252
DuplicateBlacklist (Duplicate)409duplicate_blacklistyesdesignate/exceptions.py:317designate/storage/sqlalchemy/__init__.py:1314, designate/storage/sqlalchemy/__init__.py:1361
DuplicatePool (Duplicate)409duplicate_poolyesdesignate/exceptions.py:321designate/storage/sqlalchemy/__init__.py:1443, designate/storage/sqlalchemy/__init__.py:1527, designate/manage/pool.py:144
DuplicatePoolAttribute (Duplicate)409duplicate_pool_attributeyesdesignate/exceptions.py:325designate/storage/sqlalchemy/__init__.py:1589, designate/storage/sqlalchemy/__init__.py:1635
DuplicatePoolNsRecord (Duplicate)409duplicate_pool_ns_recordyesdesignate/exceptions.py:329designate/storage/sqlalchemy/__init__.py:1665, designate/storage/sqlalchemy/__init__.py:1669
DuplicatePoolNameserver (Duplicate)409duplicate_pool_nameserveryesdesignate/exceptions.py:333designate/storage/sqlalchemy/__init__.py:1694, designate/storage/sqlalchemy/__init__.py:1711
DuplicatePoolTarget (Duplicate)409duplicate_pool_targetyesdesignate/exceptions.py:337designate/storage/sqlalchemy/__init__.py:1754, designate/storage/sqlalchemy/__init__.py:1903
DuplicatePoolTargetOption (Duplicate)409duplicate_pool_target_optionyesdesignate/exceptions.py:341designate/storage/sqlalchemy/__init__.py:1939, designate/storage/sqlalchemy/__init__.py:1944
DuplicatePoolTargetMaster (Duplicate)409duplicate_pool_target_masteryesdesignate/exceptions.py:345designate/storage/sqlalchemy/__init__.py:1971, designate/storage/sqlalchemy/__init__.py:1976
DuplicatePoolAlsoNotify (Duplicate)409duplicate_pool_also_notifyyesdesignate/exceptions.py:349designate/storage/sqlalchemy/__init__.py:2001, designate/storage/sqlalchemy/__init__.py:2019
DuplicateZoneImport (Duplicate)409duplicate_zone_importyesdesignate/exceptions.py:353designate/storage/sqlalchemy/__init__.py:2240, designate/storage/sqlalchemy/__init__.py:2288
DuplicateZoneExport (Duplicate)409duplicate_zone_exportyesdesignate/exceptions.py:357designate/storage/sqlalchemy/__init__.py:2327, designate/storage/sqlalchemy/__init__.py:2375
MethodNotAllowed (DesignateException)405method_not_allowedyesdesignate/exceptions.py:361designate/api/v2/controllers/errors.py:34
DuplicateZoneTransferRequest (Duplicate)409duplicate_zone_transfer_requestyesdesignate/exceptions.py:367designate/storage/sqlalchemy/__init__.py:2080, designate/storage/sqlalchemy/__init__.py:2082, designate/storage/sqlalchemy/__init__.py:2113
DuplicateZoneTransferAccept (Duplicate)409duplicate_zone_transfer_acceptyesdesignate/exceptions.py:371designate/storage/sqlalchemy/__init__.py:2172, designate/storage/sqlalchemy/__init__.py:2199
DuplicateZoneAttribute (Duplicate)409duplicate_zone_attributeyesdesignate/exceptions.py:375designate/storage/sqlalchemy/__init__.py:853, designate/storage/sqlalchemy/__init__.py:868
DuplicateZoneMaster (Duplicate)409duplicate_zone_attributeyesdesignate/exceptions.py:379designate/storage/sqlalchemy/__init__.py:893, designate/storage/sqlalchemy/__init__.py:898
DuplicateSharedZone (Duplicate)409duplicate_shared_zoneyesdesignate/exceptions.py:383designate/storage/sqlalchemy/__init__.py:770
NotFound (DesignateException)404not_foundyesdesignate/exceptions.py:387designate/utils.py:158, designate/utils.py:166, designate/api/v2/controllers/errors.py:28, designate/central/service.py:2004 …
ServiceStatusNotFound (NotFound)404service_status_not_foundyesdesignate/exceptions.py:393designate/storage/sqlalchemy/__init__.py:2411
QuotaNotFound (NotFound)404quota_not_foundyesdesignate/exceptions.py:397designate/storage/sqlalchemy/__init__.py:65
ServerNotFound (NotFound)404server_not_foundyesdesignate/exceptions.py:401
TsigKeyNotFound (NotFound)404tsigkey_not_foundyesdesignate/exceptions.py:405designate/storage/sqlalchemy/__init__.py:221
BlacklistNotFound (NotFound)404blacklist_not_foundyesdesignate/exceptions.py:409designate/storage/sqlalchemy/__init__.py:1303, designate/storage/sqlalchemy/__init__.py:1361
ZoneNotFound (NotFound)404zone_not_foundyesdesignate/exceptions.py:413designate/mdns/handler.py:390, designate/storage/sqlalchemy/__init__.py:382, designate/storage/sqlalchemy/__init__.py:503, designate/storage/sqlalchemy/__init__.py:658 …
ZoneMasterNotFound (NotFound)404zone_master_not_foundyesdesignate/exceptions.py:417designate/storage/sqlalchemy/__init__.py:887
ZoneAttributeNotFound (NotFound)404zone_attribute_not_foundyesdesignate/exceptions.py:421designate/storage/sqlalchemy/__init__.py:847
TldNotFound (NotFound)404tld_not_foundyesdesignate/exceptions.py:425designate/storage/sqlalchemy/__init__.py:146
RecordSetNotFound (NotFound)404recordset_not_foundyesdesignate/exceptions.py:429designate/storage/sqlalchemy/__init__.py:934, designate/storage/sqlalchemy/__init__.py:1079, designate/central/service.py:1617
RecordNotFound (NotFound)404record_not_foundyesdesignate/exceptions.py:433designate/storage/sqlalchemy/__init__.py:1173
ReportNotFound (NotFound)404report_not_foundyesdesignate/exceptions.py:437designate/central/service.py:1277
PoolNotFound (NotFound)404pool_not_foundyesdesignate/exceptions.py:441designate/storage/sqlalchemy/__init__.py:1381, designate/storage/sqlalchemy/__init__.py:1527, designate/central/service.py:3178
NoValidPoolFound (NotFound)404no_valid_pool_foundyesdesignate/exceptions.py:445designate/scheduler/base.py:84
PoolAttributeNotFound (NotFound)404pool_attribute_not_foundyesdesignate/exceptions.py:449designate/storage/sqlalchemy/__init__.py:1575
PoolNsRecordNotFound (NotFound)404pool_ns_record_not_foundyesdesignate/exceptions.py:453designate/storage/sqlalchemy/__init__.py:1658
PoolNameserverNotFound (NotFound)404pool_nameserver_not_foundyesdesignate/exceptions.py:457designate/storage/sqlalchemy/__init__.py:1687
PoolTargetNotFound (NotFound)404pool_target_not_foundyesdesignate/exceptions.py:461designate/storage/sqlalchemy/__init__.py:1728, designate/storage/sqlalchemy/__init__.py:1903
PoolTargetOptionNotFound (NotFound)404pool_target_option_not_foundyesdesignate/exceptions.py:465designate/storage/sqlalchemy/__init__.py:1931
PoolTargetMasterNotFound (NotFound)404pool_target_master_not_foundyesdesignate/exceptions.py:469designate/storage/sqlalchemy/__init__.py:1963
PoolAlsoNotifyNotFound (NotFound)404pool_also_notify_not_foundyesdesignate/exceptions.py:473designate/storage/sqlalchemy/__init__.py:1994
ZoneTransferRequestNotFound (NotFound)404zone_transfer_request_not_foundyesdesignate/exceptions.py:477designate/storage/sqlalchemy/__init__.py:2062, designate/storage/sqlalchemy/__init__.py:2114
ZoneTransferAcceptNotFound (NotFound)404zone_transfer_accept_not_foundyesdesignate/exceptions.py:481designate/storage/sqlalchemy/__init__.py:2158
ZoneImportNotFound (NotFound)404zone_import_not_foundyesdesignate/exceptions.py:485designate/storage/sqlalchemy/__init__.py:2223, designate/storage/sqlalchemy/__init__.py:2288
ZoneExportNotFound (NotFound)404zone_export_not_foundyesdesignate/exceptions.py:489designate/storage/sqlalchemy/__init__.py:2311, designate/storage/sqlalchemy/__init__.py:2375
SharedZoneNotFound (NotFound)404shared_zone_not_foundyesdesignate/exceptions.py:493designate/storage/sqlalchemy/__init__.py:758
LastServerDeleteNotAllowed (BadRequest)400last_server_delete_not_allowedyesdesignate/exceptions.py:497designate/central/service.py:2477
ResourceNotFound (NotFound)404not_foundyesdesignate/exceptions.py:501designate/utils.py:89
MissingProjectID (BadRequest)401missing_project_idyesdesignate/exceptions.py:506designate/api/v2/controllers/quotas.py:74, designate/central/service.py:391
ZoneShared (DesignateException)400zone_is_sharednodesignate/exceptions.py:515designate/central/service.py:1148

Source: reverse-spec-designate/02-errors_stable-2026.2.md. The _rewrite/ and _inventory/ files are not published on the site.