Domain IP Lookup

A CNAME aliases a name, not an address

www.example.com

CNAME record

cdn.provider.net

target hostname

192.0.2.10

A record, final answer

Troubleshooting

Why Is My CNAME Record Not Propagating? Real Causes and Verification Steps

5 min readBy Domain IP Lookup Team

You configure a new subdomain for your web application, content delivery network (CDN), or third-party SaaS platform, create a CNAME record pointing to target.provider.com, and click save. Yet hours later, browser visits return connection errors, third-party domain verification checks report that the record cannot be detected, and online lookup tools return empty results. When a CNAME record appears 'stuck', the breakdown is rarely a mysterious delay in global DNS routing—it is almost always an RFC specification conflict, resolver negative caching, or a control panel misconfiguration.

A CNAME aliases a name, not an address

www.example.com

CNAME record

cdn.provider.net

target hostname

192.0.2.10

A record, final answer

A CNAME creates an alias from an alias label to a canonical domain name. Recursive resolvers chase the alias to obtain the final A or AAAA address.

The Canonical Name Specification (RFC 1034 & RFC 1912)

The Canonical Name (CNAME) resource record type is defined in RFC 1034 Section 3.6.2 and RFC 1035. Unlike an A record, which directly binds a hostname to an IPv4 address, a CNAME binds an alias label to another domain name (the canonical name). When a recursive resolver queries a CNAME, it must 'chase' the alias: it reads the CNAME response, queries the canonical target, and returns the final target's address records to the client.

Cause 1: The Zone Apex Prohibition (RFC 1912 Section 2.4)

The single most frequent reason a CNAME fails to work is attempting to configure it on the zone apex (also known as the naked root domain, e.g., example.com rather than sub.example.com).

Under RFC 1912 Section 2.4, if a CNAME record exists at a node, no other data may exist for that node. A CNAME cannot coexist with any other resource record type on the same label. However, the root apex of every DNS zone requires an SOA (Start of Authority) record and an NS (Nameserver) record by definition. If a domain uses email, it also requires an MX record on the root apex.

Because an apex domain must have SOA and NS records, placing a standard CNAME at example.com violates fundamental DNS protocol rules. Modern DNS management interfaces handle this in one of three ways: they reject the entry with an error, silently ignore it, or provide a proprietary virtual record type.

Provider SolutionRecord Feature NameHow It Works TechnicallyRFC Compliant?
CloudflareCNAME FlatteningAuthoritative nameserver queries the CNAME target internally and answers public queries with synthesized A/AAAA recordsYes (Emits standard A records)
AWS Route 53Alias RecordInternal pointer to AWS resources (ALB, CloudFront, S3) answered dynamically with A/AAAA recordsYes (Emits standard A records)
DNS Made Easy / ConstellixANAME RecordNameserver monitors target IP and synthesizes A records at the zone apexYes (Emits standard A records)
Standard RegistrarApex CNAME (Raw)Direct CNAME published alongside SOA/NS recordsNO (Violates RFC 1912; breaks MX and nameservers)

Cause 2: Negative Caching and the SOA Minimum TTL (RFC 2308)

A very common human behavioral trap occurs during DNS configuration: an administrator types app.example.com into their browser before creating the CNAME record in their DNS provider dashboard. The browser issues a lookup, the recursive resolver queries the authoritative nameserver, and the authoritative nameserver responds with NXDOMAIN (or NODATA).

Under RFC 2308, recursive resolvers do not merely cache positive answers; they also cache negative answers. The duration of this negative cache is dictated by the SOA Minimum TTL field specified in the zone's Start of Authority record. If your domain's SOA Minimum TTL is set to 3,600 seconds (1 hour) or 86,400 seconds (24 hours), your ISP resolver and local OS will continue returning NXDOMAIN for hours even if you add the CNAME record 30 seconds later.

Cause 3: Conflicting Records on the Same Subdomain

Because RFC 1912 forbids a CNAME from coexisting with other records on the same label, you cannot have both an A record and a CNAME record for blog.example.com. Similarly, you cannot have a TXT record and a CNAME on the same label. If an old parking A record or a legacy verification TXT record remains on that subdomain from a prior deployment, the DNS control panel may accept the CNAME while the authoritative DNS daemon refuses to serve it, or resolvers may reject the malformed zone.

Cause 4: The Canonical Target Does Not Resolve

A CNAME record contains no IP address data. It is purely a directional signpost. If you point store.example.com to shops.myshopify.com, but there is a typo in the target (e.g., shops.myshopfy.com), or the destination SaaS provider has not yet provisioned an A record for that tenant hostname, the lookup chain terminates in NXDOMAIN or SERVFAIL.

Authoritative Query vs Full Trace Testing with dig
# 1. Query your authoritative nameserver directly (bypasses recursive caches):
$ dig @ns1.yourprovider.com CNAME app.example.com +norecurse

;; ANSWER SECTION:
app.example.com.    300    IN    CNAME    target.cdnprovider.com.

# 2. Query the canonical target's address records:
$ dig A target.cdnprovider.com +short
198.51.100.45

# 3. Perform a recursive trace from root hints:
$ dig CNAME app.example.com +trace

Cause 5: Cloudflare Proxying Masks CNAME Responses

If your domain uses Cloudflare and you create a CNAME record with the orange-cloud proxy enabled, Cloudflare terminates the CNAME lookup at its edge. When a public user queries dig CNAME app.example.com, Cloudflare returns Cloudflare Anycast A/AAAA records rather than the CNAME string. Many domain verification tools mistakenly report 'CNAME record not found' because they specifically query for the CNAME record type rather than checking resolution.

Key takeaway

When a CNAME seems stuck, verify that it is not placed on the zone apex (use CNAME flattening or Alias records instead), remove any conflicting A/TXT records on the same subdomain, and query your authoritative nameserver directly to bypass local negative caching.

Check your result and continue troubleshooting

Use the cname lookup tool to inspect the public DNS data relevant to this guide. Record the hostname, query type, resolver and time so you can compare results after a change. This is a DNS check, not a guarantee of worldwide propagation or successful application delivery.

For the underlying behavior and current configuration guidance, consult the official reference. Provider dashboards can change; use the values shown for your own domain rather than copying an example into production.

Need to check a domain's public DNS addresses? Use the Domain IP Lookup tool.

Free tools for this topic

CNAMEpropagationDNS troubleshootingzone apexTTL

Frequently asked questions