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 your domain hasn't verified yet, with exact DNS commands you can copy-paste into any registrar.

When VeloCMS shows a 'Pending DNS' badge next to your domain, your domain is registered on our side but we haven't seen the CNAME record pointing at your assigned target 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, 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 the exact CNAME target shown in the Custom Domain section of Admin → Settings → Branding. That target is a unique Railway address assigned to your domain, so copy it from the panel rather than typing it from memory. 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). While a record is Proxied, DNS lookups return Cloudflare's proxy IPs instead of your real target, so VeloCMS's verification can't see the record at all.

How to verify the record is live

Open a terminal and run: dig CNAME blog.example.com +short. You should see the same target address the Custom Domain panel shows you. 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 — add the CNAME as DNS-only (grey cloud, not Proxied) at the root and Cloudflare flattens it to A/AAAA records automatically, no extra step needed. Namecheap and Porkbun both support ALIAS records as an alternative. The Custom Domain section in Admin → Settings → Branding walks you through all three cases — Cloudflare DNS, an ALIAS/ANAME provider, or a standard registrar — with the exact record set for each.

Still stuck after 30 minutes?

Head back to the Custom Domain section of Admin → Settings → Branding and click Verify Now. VeloCMS re-checks your DNS records and refreshes the status. If you still see Pending DNS after confirming the record is live with 'dig', reach out to support from the Help menu and tell us your domain — we'll check our side within one business day.

Custom domains on VeloCMS are routed through Railway, and the CNAME target is unique to your domain — always copy it from the Custom Domain panel rather than reusing an address from another setup. A records will not work.