So I finally got around to documenting this because I kept running into the same issues over and over (you know how it is, you set something up, it breaks six months later, you forget what you did) and Cloudflare registrar (which is nice for cost, I will give them that, no markup on renewals is genuinely refreshing in this industry where everyone wants to squeeze you) has these weird gaps where they support some DNS providers but not others and the documentation (ha!) is either wrong or missing the edge cases that actually matter in production (like when you have a domain that was transferred in and already has glue records that don't match their expected format and the UI just silently fails or gives you this generic error that means nothing) so anyway the main gotcha is that if you're using external DNS (not their own, which is fine, I prefer Contabo's anycast setup for my own reason
Mini-guide: Using Cloudflare registrar with external DNS. The gotchas.
Someone else's computer strikes again. Back in the day you had your ethernet, your T-1, your zone file. Simple. Now it's all "cloud" this and "ecosystem" that.
Transferred three domains to Cloudflare registrar last year. Two worked. One choked on glue mismatch. Their ethernet to your external DNS? Unsupported combination, documented nowhere. Had to pull the DS record via registry directly like it was 1998.
Grumble grumble. Works now. Saved me $18/year. Not sure it was worth the afternoon.
For that money you get:
- Cloudflare registrar: €8.03 .com renewal
- Hetzner domains: €10.99 .com renewal
- InterServer domains: $9.50 .com renewal
Savings on 10 domains: ~$20-30/year. Time spent debugging their external DNS quirks: 4+ hours.
Hardware comparison: for that money you get a 2TB enterprise HDD on auction. More useful.
I make a server up with Cloudflare registrar + GreenCloudVPS DNS last month. Had problem with DS record too.
My fix: delete all DNSSEC at old provider first, wait 24 hour, then transfer. After transfer, add new DS at Cloudflare. Not in documentation.
Regards 😊
Actually (and this is something I learned back in my day (which was 2019 (ancient history I know))) the real issue is their API for external DNS providers (specifically the v4 endpoint (documented here: cloudflare.com/api/v4 (not a real url obviously))) returns success on record creation but the record doesn't propagate to their edge for like 20 minutes (I timed it with SmokePing version 2.7.3) so you think it worked, you walk away, your site is down, you panic.
Back in my day we just edited named.conf and rndc reloaded. Simpler. (well, not simpler, but more predictable (which is what matters when you're debugging at 2am)))
1. Core gotchas from this thread so far:
- Glue record mismatch on transfer in
- DS record algorithm mismatch for DNSSEC
- Silent UI failures with generic errors
- Email routing auto-detection conflicts
- API success vs. Edge propagation delay
2. Workarounds that worked:
- Delete DNSSEC pre-transfer, wait 24h, re-add after
- Manual DS upload instead of UI
- Pull glue via registry directly
3. Savings reality check:
- ~$2-3/domain/year
- Time cost: 2-8 hours initial setup
- Break-even: only at scale
4. Providers mentioned in thread:
- Contabo (anycast DNS)
- GreenCloudVPS (DNS)
- Hetzner, InterServer (domain pricing comparison)
Their docs updated last night external dns page now has a "known limitations" section with four of these cases. Someone was listening.
Coincidence or not, the fix helps
The DS record dance. Been there. Registry direct is ridiculous in 2024
Link to the new known limitations page? Cant find it
https://developers.cloudflare.com/registrar/get-started/known-limitations/
Wasnt there yesterday morning. Was there last night. They added the DS pre-delete step and the glue format note. Still missing the propagation delay though.