Cloud DNS Record Propagation Failure – Fix It Now

Server & Cloud Intermediate 👁 13 views 📅 Jun 26, 2026

Your DNS change isn't showing up globally. The fix is often simpler than you think: flush your local resolver cache and check TTL values directly.

You changed a DNS record. It's been an hour. Still nothing.

I get it. You're staring at a terminal or a DNS checker that shows the old IP. The frustration is real—especially when you're launching something critical. Let's cut through the noise and fix it.

Step 1: Check the TTL on the record itself

Open a terminal. Run this command for your domain:

dig example.com A +noall +answer

Look at the TTL value (the number before 'IN A'). If it's 3600 or 14400 seconds (1 or 4 hours), your old record is cached for that long. The fix: set a low TTL—like 60 or 120 seconds—before you make the change next time. But you're already here. So do this:

Step 2: Force-flush your local DNS cache

On Windows (run as Admin):

ipconfig /flushdns

On Linux (systemd-resolved):

sudo systemd-resolve --flush-caches

On macOS:

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

Now check again with dig. If your local machine sees the new record, you're good. If not, move to step 3.

Step 3: Bypass your ISP's recursive resolver

Your ISP's DNS server is probably caching the old record. The real way to see what the world sees is to query Google Public DNS or Cloudflare's 1.1.1.1 directly:

dig @8.8.8.8 example.com A +noall +answer

If Google sees the new record but your ISP doesn't, the problem is the ISP's cache—not propagation. Run this to confirm:

dig @1.1.1.1 example.com A +noall +answer

If both Google and Cloudflare show the NEW record, then your ISP will update within minutes to an hour. Nothing more you can do from your side.

Why step 3 works

What's actually happening here is that DNS propagation is a myth—sort of. There is no global "propagation button." When you change a record at your registrar or DNS provider (like Route53, Cloudflare, or Google Cloud DNS), the zone file updates immediately at the authoritative nameserver. But every recursive resolver (your ISP's, Google's, etc.) caches the old record until its TTL expires. By querying 8.8.8.8 directly, you bypass your local cache and your ISP's cache to see what the root of the system has.

The reason step 3 works is that Google and Cloudflare run massive anycast networks with aggressive cache purging—they refresh against the authoritative server each time you query. Your ISP's resolver might use a longer refresh interval or ignore the TTL entirely (some do).

Less common variations of the same issue

1. CNAME flattening or ALIAS records

If you're using a CNAME at the apex (like example.com -> somecdn.net) via services like Cloudflare or DNSimple, the resolver sees a different record type. Some recursive resolvers cache the resolved IP aggressively and ignore TTLs. The fix: use an A record pointing to an IP or use a service that supports ANAME/ALIAS natively.

2. DNSSEC signing delay

If you've enabled DNSSEC, changing records requires re-signing the zone. Some providers (like AWS Route53) sign automatically, but it can take 5-15 minutes for the new RRSIG records to propagate. During that time, a validating resolver rejects the old record and returns SERVFAIL. Check with:

dig example.com A +dnssec +noall +answer

If you see no RRSIG, wait and check again.

3. Cloudflare proxied (orange cloud) records

When you toggle Cloudflare's proxy on, the record type changes to a CNAME internally, and Cloudflare's edge caches the IP for 60-300 seconds regardless of the TTL you set. If you're testing from inside Cloudflare's network (like their own resolver), you see stale data. Use dig @8.8.8.8 from a machine outside that network.

4. Registrar vs hosted zone confusion

You changed the record at your registrar (e.g., Namecheap) but your DNS is hosted at Cloudflare. That's a common mistake. Verify where your nameservers point:

dig example.com NS +short

If the nameservers don't match your DNS provider, that's the root cause.

How to prevent this from happening again

Set TTL to 60 seconds for all records you plan to change. Do it at least 24 hours before the actual change. That way the old TTLs expire first, and the whole world sees the new value within a minute after the switch.

Use a monitoring tool like dnschecker.org or whatsmydns.net to spot regional delays. But honestly, the best tool is dig @8.8.8.8 — it's free, fast, and honest.

Last thing: if your provider gives a "propagation status" bar in their dashboard, ignore it. It's marketing fluff. The real state is what 8.8.8.8 and 1.1.1.1 return.

Was this solution helpful?