Custom Domains·4 min read·

My custom domain is stuck on Pending DNS — how do I fix it?

Step-by-step guide for diagnosing why Cloudflare hasn't picked up your CNAME record yet, with exact DNS commands you can copy-paste into any registrar.

When VeloCMS shows a 'Pending DNS' badge next to your domain, Cloudflare has registered your hostname but hasn't seen the CNAME record pointing at our network yet. That's almost always a DNS propagation lag or a typo in the record — not a bug on our end.

The exact CNAME record you need

Log in to your DNS provider (Cloudflare, Namecheap, GoDaddy, Google Domains, Porkbun — wherever you bought the domain). Add a CNAME record with the Name (or Host) set to your full domain — for example 'blog.example.com' — and the Target (or Value) set to 'proxy.velocms.org'. Set the TTL to Auto or 300 seconds. Save the record.

If you're using Cloudflare as your DNS provider, make sure the CNAME record's Proxy status is set to 'DNS only' (grey cloud), NOT 'Proxied' (orange cloud). Cloudflare's HTTP proxy intercepts the SSL challenge and breaks VeloCMS's certificate provisioning.

How to verify the record is live

Open a terminal and run: dig CNAME blog.example.com +short. You should see 'proxy.velocms.org.' in the output. If you see nothing, the record hasn't propagated yet — wait 2-5 minutes and try again. Global propagation can occasionally take up to 30 minutes depending on your registrar's nameservers.

Apex domains (example.com without www)

The DNS standard doesn't allow a CNAME on an apex domain (@). If you want to use your bare domain rather than a subdomain, your DNS provider must support CNAME-flattening (also called ALIAS or ANAME records). Cloudflare DNS supports this natively — enable the Proxied toggle and Cloudflare flattens the CNAME automatically. Namecheap and Porkbun both support ALIAS records as an alternative.

Still stuck after 30 minutes?

Head back to Admin → Settings → Custom Domain and click Retry. VeloCMS will poll Cloudflare for the latest status. If you still see Pending DNS after confirming the record is live with 'dig', reach out to support from the Help menu and mention error code D-DNS-01 — we'll check the CF side within one business day.

VeloCMS uses Cloudflare for SaaS for custom domain termination. That means the CNAME must point to our specific fallback origin, not a generic IP. A records will not work.