[Pdns-users] "HTTP/1.1 422 Unprocessable Entity" when creating a zone

Tomasz Chmielewski mangoo at wpkg.org
Sun Jun 14 13:29:09 UTC 2020


Using 4.2.1, I'm getting "HTTP/1.1 422 Unprocessable Entity" when trying 
to create a zone as described on 
https://doc.powerdns.com/md/httpapi/README/
What am I doing wrong?

'{"name":"example.org.", "kind": "Native", "masters": [], "nameservers": 
["ns1.example.org.", "ns2.example.org."]}' validates fine with jq:

# echo '{"name":"example.org.", "kind": "Native", "masters": [], 
"nameservers": ["ns1.example.org.", "ns2.example.org."]}' | jq
{
   "name": "example.org.",
   "kind": "Native",
   "masters": [],
   "nameservers": [
     "ns1.example.org.",
     "ns2.example.org."
   ]
}



# curl -X POST --data '{"name":"example.org.", "kind": "Native", 
"masters": [], "nameservers": ["ns1.example.org.", "ns2.example.org."]}' 
-v -H 'X-API-Key: my-key' 
http://10.58.150.164:8081/api/v1/servers/localhost/zones
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 10.58.150.164:8081...
* TCP_NODELAY set
* Connected to 10.58.150.164 (10.58.150.164) port 8081 (#0)
> POST /api/v1/servers/localhost/zones HTTP/1.1
> Host: 10.58.150.164:8081
> User-Agent: curl/7.68.0
> Accept: */*
> X-API-Key: my-key
> Content-Length: 113
> Content-Type: application/x-www-form-urlencoded
> 
* upload completely sent off: 113 out of 113 bytes
* Mark bundle as not supporting multiuse
< HTTP/1.1 422 Unprocessable Entity
< Access-Control-Allow-Origin: *
< Connection: close
< Content-Length: 50
< Content-Security-Policy: default-src 'self'; style-src 'self' 
'unsafe-inline'
< Content-Type: application/json
< Server: PowerDNS/4.2.1
< X-Content-Type-Options: nosniff
< X-Frame-Options: deny
< X-Permitted-Cross-Domain-Policies: none
< X-Xss-Protection: 1; mode=block
<
* Closing connection 0
{"error": "Creating domain 'example.org.' failed"}


This logs:

Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8 Request details:
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8  POST params:
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   {"name":"example.org.", "kind": 
"Native", "masters": [], "nameservers": ["ns1.example.org.", 
"ns2.example.org."]}:
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8  Headers:
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   accept: */*
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   content-length: 113
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   content-type: 
application/x-www-form-urlencoded
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   host: 10.58.150.164:8081
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   user-agent: curl/7.68.0
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   x-api-key: my-key
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8  Full body:
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   {"name":"example.org.", "kind": 
"Native", "masters": [], "nameservers": ["ns1.example.org.", 
"ns2.example.org."]}
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8 Handling request 
"/api/v1/servers/localhost/zones"
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8 Result for 
"/api/v1/servers/localhost/zones": 422, body length: 50
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8 Response details:
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8  Headers:
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   access-control-allow-origin: *
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   Connection: close
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   Content-Length: 50
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   Content-Security-Policy: 
default-src 'self'; style-src 'self' 'unsafe-inline'
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   Content-Type: application/json
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   Server: PowerDNS/4.2.1
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   X-Content-Type-Options: nosniff
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   X-Frame-Options: deny
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   
X-Permitted-Cross-Domain-Policies: none
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   X-XSS-Protection: 1; mode=block
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8  Full body:
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8   {"error": "Creating domain 
'example.org.' failed"}
Jun 14 13:19:59 dns1 pdns_server[25635]: [webserver] 
a5b403b9-83a9-45b9-a638-0f2b4ce1f4d8 10.58.150.164:39182 "POST 
/api/v1/servers/localhost/zones HTTP/1.1" 422 423



Tomasz


More information about the Pdns-users mailing list