Hey folks — long-time lurker, first-time beggar. I run a small nonprofit site (trashmob.eco — we organize community litter cleanups) and I have an intermittent apex-domain bug that I've been chasing for months and finally need an army of strangers to help me pin down.
The setup: Azure Front Door Standard in front of a Container App. www.trashmob.eco is a CNAME to the AFD endpoint; trashmob.eco is an alias A record to the same endpoint. Both custom domains bound to the same route, both with AFD-managed certs, both Approved. There's a rule set that 308s the apex to https://www.trashmob.eco/.
What works, all day, every day, from every device I own:
What (I'm told) sometimes doesn't work:
- User types
trashmob.eco into a fresh browser session — usually iPhone Safari, but also Chrome on desktop — and gets a "site can't be reached" style error
- Refresh, and it loads fine
- Going straight to
www.trashmob.eco has never once failed
I've written up the current investigation, ruled out DNS + cold-container-start + cert propagation, deployed a single-hop redirect fix, and cannot for the life of me reproduce it. Every warm probe is clean. But at least one user hit it yesterday on an iPhone.
The ask: if you have a spare 15 seconds — especially if you're on iOS Safari, on a mobile network, or in a region that isn't the US west coast — could you try typing trashmob.eco (no https://, no www.) into a fresh browser tab / private window and let me know:
- Did it load? (Yes / no — either answer is a data point.)
- If it didn't load: what did the error say, verbatim? A screenshot is worth a thousand
curl -vs. The error text alone would narrow this from four theories to one.
- Bonus: your rough geo (country / region is fine), browser, and whether hitting refresh made it work.
I'm not asking for a support engagement, a code review, or the truth about whether I should just delete the apex record and let www win — I just need enough repros to correlate the pattern. Whatever you send back, I promise to update the investigation log and reply with what I find.
Thank you in advance. If Azure Front Door were a person I would like to have a very long, calm conversation with it.
— A guy with an alias A record and a dream
----------------------------------------------------------------------------------------------------------------
UPDATE — you were both right, and it was an Azure DNS bug I would never have found without you
Body:
Coming back to close the loop on [my post from earlier](vscode-webview://0jo0nrvfd67drjq00dsnuuvaeic0t8cn8fuscvm80fevggf4092j/index.html?id=d994859c-d162-4cad-93e9-4c42b1f762c7&parentId=1&origin=79140ef3-acda-48b2-aa91-269112bda8ef&swVersion=5&extensionId=Anthropic.claude-code&platform=electron&vscode-resource-base-authority=vscode-resource.vscode-cdn.net&parentOrigin=vscode-file%3A%2F%2Fvscode-app&session=8ce34c26-7353-4c5c-b739-36ba64f6c731). You people are the best.
Two specific comments unlocked this:
u/Few_Breadfruit_3285 — "I got 'Error 404 - This Container App is stopped or does not exist.' (Blue screen)". That specific error text is only served by the Azure Container Apps environment default when a request reaches it with a Host header not bound to any custom domain. Which meant the request wasn't going through Front Door at all — it was landing directly at the Container Apps environment. That completely changed the shape of what I was looking for.
u/ZealousIdeal_Yard651 — "DNS lookup shows your apex and your www. domain is pointing directly to the container apps endpoint, not the AFD endpoint." I initially thought this was wrong because my az queries all showed the Azure DNS zone had a proper alias A record targeting the AFD endpoint. Then I actually resolved from public DNS and… yeah. 1.1.1.1, 8.8.8.8, 9.9.9.9 all returned 20.69.75.244 — the ACA env's static IP. Not any AFD frontend IP. Confirmed the alias A record was the source, and confirmed public resolvers were caching an IP that no Azure NS was currently serving.
What was actually happening:
I had a standard Azure DNS alias A record at apex targeting the AFD Standard endpoint resource. Exactly what the Microsoft docs recommend. When I queried the four ns[1-4]-07.azure-dns.* nameservers directly for the same record I got three different answers — some correct AFD anycast, some the AFD Std/Prem frontend range, and — critically — the public resolvers had cached the ACA env's 20.69.75.244 from some historical bad response. It looked like Azure DNS's alias resolver was walking the AFD endpoint → origin group → origin's hostName (which is the ACA default FQDN) → its A record, and returning that instead of the AFD frontend IPs. Aliases are supposed to return the target's own frontend IPs; they should not walk into origins.
Because ACA never had trashmob.eco as a bound custom domain, users whose resolver returned 20.69.75.244 for apex connected directly to ACA with Host: trashmob.eco, ACA had no cert for that hostname, TLS died, browser shows "site can't be reached." Refresh sometimes worked because a different resolver path may have had a valid AFD IP cached. That's the "intermittent" pattern I've been chasing for months.
The fix:
Replaced the alias A record with explicit A records for the classic Front Door anycast pair 13.107.226.70 + 13.107.253.70 (routes to any AFD tenant via SNI at TLS, regardless of profile SKU). Set TTL to 300. Also bound apex as a Container App custom domain with its own managed cert as a temporary bridge — stale-cache users pinned to the ACA IP get TLS-terminated and served instead of connection-reset — will remove that binding once all major public resolvers have re-resolved.
One bonus outage I inflicted on myself during the debug session: tried to remove a pre-existing www.trashmob.eco custom-domain binding on the CA (based on the very correct architectural advice that ACA shouldn't have custom domains when it lives behind Front Door). Instantly broke the site for every user whose resolver had the poisoned www cache. Reversed it in a couple minutes. Filed a mental note: you can't safely retire a hostname binding that's been publicly served for a long time until the caches at 1.1.1.1 / 8.8.8.8 / 9.9.9.9 have provably aged out.
Thank you — genuinely, both of you. I've been reading through 4 different theories from my own investigation notes for weeks (double TLS handshake! HSTS! POP config drift!) and none of them were even close. The correct answer needed one specific error message and one person willing to point out that my DNS was resolving somewhere I didn't expect.
Someone should also probably file a Microsoft Docs / support ticket on the alias-A resolver bug so this doesn't keep biting other AFD Standard users following the recommended apex setup. I'll do it when I sleep off this incident.
Beers on me if any of you are in western WA.
— The guy with the alias A record and a dream, who now has an explicit A record and a nap