- Newest
- Most votes
- Most comments
One thing in your own data cuts against your leading hypothesis, and I think it's the most useful place to start.
The www subdomain disproves the flattening theory (Q2)
You report that www resolves as a proper CNAME to the CloudFront target from both Cloudflare's authoritative nameservers and 1.1.1.1 — and yet subDomains[1] (www) is still verified: false.
Flattening only applies at the apex. If flattening were the cause, www should have verified and only the apex would be stuck. Both being unverified means something upstream of the DNS shape is wrong.
Two things worth checking before anything else:
The CNAME target must match exactly. Each Amplify app gets its own CloudFront distribution. Compare the dnsRecord value from get-domain-association character-by-character against what's actually in Cloudflare. A stale target from one of the two earlier timed-out associations would produce exactly this symptom — the site serves fine (the old distribution may still answer), but Amplify's check against its expected target fails.
Check statusReason. Your paste omits it. This field exists specifically to describe why the association sits in its current state, and it often names the actual blocker.
aws amplify get-domain-association --app-id d1fez1b1fdztir \ --domain-name <domain> --region ca-central-1 \ --query 'domainAssociation.[statusReason,updateStatus,certificate]'
If statusReason is empty and the targets match exactly, then this is genuinely stuck state on Amplify's side rather than a DNS problem, and support is the path.
Q1: renewal
The honest answer is that I can't give you a guarantee here, and the available evidence points in two directions.
The mechanical view is reassuring: ACM DNS-validated renewal depends on the _<hash> → .acm-validations.aws CNAME remaining resolvable, which you've confirmed it is. Renewal typically begins around 60 days before expiry — mid-January 2027 for your 19 Mar 2027 cert.
The concerning view comes from AWS's own guidance on expired Amplify-managed certificates: the stated remedy when renewal fails is to delete and re-add the domain in the Amplify console. That phrasing implies renewal is driven through the domain association, not purely by ACM in isolation. The documented failure mode is a modified or deleted verification record — which isn't your situation — but it does suggest the association is part of the renewal path.
I'd treat this as unresolved rather than safe. You have roughly four months before renewal would start, which is enough runway to get a definitive answer from support rather than discovering the outcome in January.
Q3: resolving without delete/recreate
update-domain-association is the supported non-destructive lever. It's a distinct operation with its own updateStatus field, and it can re-drive the state machine without tearing down the association:
aws amplify update-domain-association --app-id d1fez1b1fdztir \ --domain-name <domain> --region ca-central-1 \ --sub-domain-settings prefix="",branchName=<branch> \ prefix=www,branchName=<branch>
Then watch updateStatus separately from domainStatus.
Your instinct to avoid delete/recreate is right, and for a reason beyond downtime: repeated recreation is what produces the orphaned CloudFront alias conflicts you've seen in other threads, where the alias gets stranded in an AWS-managed account that you can't reach. Given you already have two timed-out associations in this domain's history, you're closer to that failure mode than most.
Suggested order
- Pull
statusReasonand diff the expecteddnsRecordagainst Cloudflare, exactly - If they match, try
update-domain-associationbefore anything destructive - Open a support case on the renewal question specifically — frame it as "will an Amplify-managed certificate renew while the association is in AWAITING_APP_CNAME," not as a general stuck-domain ticket, so it reaches someone who can answer definitively
If step 1 turns up a target mismatch, that likely explains the whole thing and Q1 becomes moot once the association reaches AVAILABLE.
Resolved.
Status went to AVAILABLE roughly 3 hours after adding the CNAME records, with no intervention. Note that the apex subdomain still shows verified: false while www shows true - that appears to be Cloudflare's CNAME flattening returning A records where Amplify's per-subdomain check expects a CNAME. It does not block the overall association, which reaches AVAILABLE anyway, and the certificate issues and serves correctly. If you're stuck in AWAITING_APP_CNAME with correct DNS, wait rather than recreating the association.
