dynDNS with deSEC A-Record entry not working correctly

Hey guys,
i was setting up my domain, adding an A-Record. When trying to check if it’s working using Google DNS with “dig A mydomain.dedyn.io @8.8.8.8” it doesn’t give me something back (and I should get back my IPv4 adress in the terminal, right?).

Thanks in advance:)

PS: I’m pretty new to that whole topic so I’m pretty much still on bot-level

Does dig A mydomain.dedyn.io @ns1.desec.io return the correct IP?

No, thats giving me the following output on console:

;; BADCOOKIE, retrying.

; <<>> DiG 9.20.8 <<>> A mydomain.dedyn.io @ns1.desec.io
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51132
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1400
; COOKIE: 9ea26b7d0941d3cf01000000681a02833e6d56e956cc3ab2 (good)
;; QUESTION SECTION:
;mydomain.dedyn.io. IN A

;; AUTHORITY SECTION:
mydomain.dedyn.io. 300 IN SOA get.desec.io. get.desec.io. 2025053493 86400 3600 2419200 3600

;; Query time: 18 msec
;; SERVER: 2607:f740:e633:deec::2#53(ns1.desec.io) (UDP)
;; WHEN: Tue May 06 14:37:23 CEST 2025
;; MSG SIZE rcvd: 126

Then either your A record was not set at deSEC or something went wrong while replicating your record to the secondary NS at deSEC.

Or maybe you have set the A record on a subdomain of mydomain.dedyn.io?

How did you set your A record? Web UI or IP Update API? If the latter, did you check that the return value was good?

i used the IP Update API with the curl command. I believe the return was something along:

[{“created”:
“2025-05-06T08:21:42.055705Z”,
“domain”:“mydomain.dedyn.io”,
“subname”:“mydomain.dedyn.io”,
“name”:“mydomain.dedyn.io.mydomain.dedyn.io.”,
“records”:[“myIPv4Adress”],
“ttl”:3600,
“type”:“A”,
“touched”:“2025-05-06T08:21:42.060289Z”},

so i should’ve worked

Ah, then you have set your A record on mydomain.dedyn.io.mydomain.dedyn.io, not on mydomain.dedyn.io as probably intended.

Try dig a mydomain.dedyn.io.mydomain.dedyn.io. to verify.

Oh and the IP Update API does not return any JSON and it sets the TTL to 60. So you must have used the normal API.

Yeah, used the normal API and then scaled the TTL to 3600 having seen it pop up on the entry list. Because I haven’t seen the “Add Entry” Button on the deDES page…

And the dig a mydomain.dedyn.io.mydomain.dedyn.io. worked out pretty well, so thanks for that.
To fix that “doubled domain” I can write another curl command, that will overwrite the current entry or is the Web-UI the better option?

No. You need to delete the RRset you don’t want. And in a separate operation set the one you do want.

Your curl command for setting the correct RRset should look something like this:
curl -X POST --url 'https://desec.io/api/v1/domains/mydomain.dedyn.io/rrsets/' --header 'Authorization: Token {secret}' --header 'Content-Type: application/json' --data '{"subname": "", "type": "A", "ttl": 3600, "records": ["<your-ip-address>"]}' (untested of course)

See: Creating an RRset

Deleting the wrong one via API would be described in Deleting an RRset

curl -X DELETE --url 'https://desec.io/api/v1/domains/mydomain.dedyn.io/rrsets/' --header 'Authorization: Token {secret}' --header 'Content-Type: application/json' --data '{"subname": "mydomain.dedyn.io", "type": "A"}' (untested of course)

In the web UI look for the big + Button at the top right of the page to add an RRset. And the trash can button to the left of the RRset to delete one.

I deleted the RRsets that I don’t need. While using the template from the documenation with “–header…” it doesnt work properly. It’s giving me an “{“detail”:“Authentication credentials were not provided.”}” back, so i assume the Token has expired? I thought that would never happen

Did you replace {secret} with your token value?

yeah, just deleting the subname:“” line kinda worked well. So with “dig a mydomain.dedyn.io @ns1.desec.io” works correctly, giving back the IPv4 adress.
Thanks four ur help. I will mark your anser was solution and close the thread, if thats possible