🔍

How to check Autodiscover, and the four ways it breaks

Outlook stops at the first thing that answers, not the first thing that's right. How to check your Autodiscover record and read Outlook's own log.

To check Autodiscover, run the domain through an external checker first, then run Outlook's own Test E-mail AutoConfiguration, and compare the two. The external check tells you what the DNS actually says; Outlook's log tells you which of the eight lookups it stopped at. You need both, because they disagree more often than you would expect.

They disagree because Outlook checks those eight places in a fixed order and stops at the first one that answers. Not the first one that answers correctly. The first one that answers at all.

That single design decision is behind almost every Autodiscover problem I have ever been called about. Somebody's website politely returns a page at https://yourdomain.com/autodiscover/autodiscover.xml, Outlook takes that as the answer, and now you are debugging a mail client using a web server's homepage.

So before you touch anything, find out which of the eight answered.

How do you check Autodiscover?

Run the domain through an external checker, then run Outlook's own test, and compare the two. The Autodiscover checker on this site does the first half: give it a domain and it probes the autodiscover CNAME, the _autodiscover._tcp SRV record, the legacy XML endpoint and the newer JSON v2 endpoint, plus the Thunderbird and Apple autoconfig paths, and reports what each one returned: HTTP status, TLS validity, and the actual server names inside the XML.

Do the external check first, because Outlook lies to you by caching. Once it has found a working endpoint it remembers it, and it will keep using a stale answer long after you have fixed the DNS. An external check has no memory and no opinion.

Then test inside Outlook, because that is where the cache lives. Classic Outlook for Windows has a diagnostic hidden behind a keyboard modifier, which is a strange place to keep something this useful, and most people who have administered Outlook for years have never opened it. Hold Ctrl, right-click the Outlook icon in the system tray, and choose Test E-mail AutoConfiguration. Untick Guessmart and Secure Guessmart Authentication, leave Use Autodiscover ticked, and hit Test. It is documented by Microsoft, tucked into a support article about a cross-forest mailbox fault, which tells you something about how much attention it gets.

You get three tabs. Log is the one you want: every URL Outlook tried and what came back, in order. XML is worth a look too, because it shows you the configuration Outlook was actually handed, server names and all. It is not a pretty tool, and it tells you what Outlook did rather than what it should have done, which is the only question worth asking at this point.

It is Windows and classic Outlook only. New Outlook and Outlook for Mac both resolve settings through Microsoft's cloud service and expose nothing equivalent, so on those the external check is all the evidence you are getting.

A 401 is the healthy answer, and a 200 is usually the broken one

This trips up everybody, including me the first time.

Fetch https://autodiscover.yourdomain.com/autodiscover/autodiscover.xml in a browser and a working Microsoft 365 setup returns HTTP 401 Unauthorized. That is correct. You did not send credentials, so the endpoint refused you. It refused you as an Autodiscover endpoint, which is exactly the proof you were after.

A 200 OK with a page of HTML means something answered that is not a mail service, usually the web host, sometimes a parking page, occasionally a registrar's "this domain is registered with us" placeholder. Outlook treats that as a reply, tries to parse it as configuration XML, fails, and reports something unhelpful about not being able to connect to the server.

The symptom will look like a mail problem. Go and look at what is answering on that hostname before you touch anything in Microsoft 365.

The Autodiscover SRV record is the fallback, and users click it away

The record looks like this:

_autodiscover._tcp.yourdomain.com.  SRV  0 0 443 autodiscover.outlook.com.

Priority, weight, port, target. Port 443, always.

You need it when you cannot put a CNAME on the autodiscover name itself. Some registrars are strange about it, and occasionally the name is already in use for something else. Outlook checks SRV near the end of its list, after both HTTPS attempts have failed, so it only ever runs when the ordinary route is genuinely unavailable.

It works, with one catch worth knowing before you deploy it. When Outlook follows an SRV record it shows the user a dialog asking whether to allow the site to configure their settings, naming a host that is not their domain. Users click No. Of course they click No. Somebody has trained them for years to be suspicious of exactly that dialog, and now the correct answer is Yes.

If you are rolling this out to more than a handful of people, tell them the dialog is coming and what to click. Otherwise it works perfectly and nobody can use it.

Three failures cover nearly all the rest

The CNAME is an A record

For Microsoft 365 the record is a CNAME:

autodiscover.yourdomain.com.  CNAME  autodiscover.outlook.com.

Not an A record pointing at whatever IP autodiscover.outlook.com resolved to on the day someone set it up. That IP will change, and worse, an IP has no name for TLS to validate against, so users get a certificate warning naming a host they have never heard of. People click through certificate warnings, which is its own problem for another day.

Look up the record type rather than trusting what you remember it being, and if you want the whole subdomain picture at once, the CNAME checker walks the common sub-hosts and follows each alias to its target. This one is frequently inherited from a previous IT provider along with everything else.

The record still points at the old host

You migrated to Microsoft 365 in March. The autodiscover record still points at the old shared hosting server, which is still up, still answering, and still holding a copy of a mailbox that stopped receiving new mail four months ago.

The symptom is a password prompt that keeps coming back. The user types the correct password, it is accepted by nothing, the box reappears. Everyone reasonably concludes it is an account problem, and the next hour goes into resetting passwords, checking MFA, and looking at sign-in logs that show nothing wrong, because nothing is wrong with the account. Outlook is authenticating against the wrong server, and it found that server because you told it to, in DNS, in March.

Check the DNS before you touch the account. The Microsoft 365 record check reads the whole tenant-facing set in one pass, so you can see at a glance whether autodiscover is the only leftover or whether the MX and SPF records were left behind too. The account is almost never the problem when the prompt loops, and if mail itself is also going missing rather than just prompting, that is a different investigation.

Google Workspace domains do not do Autodiscover at all

Autodiscover is a Microsoft protocol. Google does not implement it. If your mail is on Google Workspace there is no Autodiscover record to fix, and any autodiscover CNAME sitting in your zone pointing at Microsoft is a leftover that can only cause harm.

That does not mean setting it up is manual. In new Outlook and current Microsoft 365 builds you add the account by picking Google and signing in, Google's OAuth flow hands the settings over, and mail, calendar and contacts arrive without you typing a server name anywhere. It feels exactly like Autodiscover working. It isn't. Nothing in that exchange ever looked at your DNS.

The other two routes are Google Workspace Sync for Microsoft Outlook and IMAP entered by hand, which is now a fallback rather than a normal choice: since May 2025 Google Workspace has refused plain username-and-password sign-in from third-party clients, so you are using OAuth either way. None of the three consult an Autodiscover record, so no amount of DNS work will improve any of them.

I have watched people spend a genuinely sad amount of time trying to make a protocol work for a provider that does not speak it. If the domain's MX records point at Google, stop here.

Thunderbird and Apple Mail never look at Autodiscover either

Autodiscover is Microsoft's. The rest of the world uses autoconfig, which is a different mechanism with different records, and a domain can quite easily satisfy one and fail the other.

Thunderbird looks for https://autoconfig.yourdomain.com/mail/config-v1.1.xml, then https://yourdomain.com/.well-known/autoconfig/mail/config-v1.1.xml, then falls back to Mozilla's public ISPDB, a database of settings for known providers, which is why Thunderbird configures Gmail perfectly while knowing nothing about your domain. There are also RFC 6186 SRV records (_imaps._tcp, _submission._tcp and friends) that some clients honour and many ignore.

So "Autodiscover is fine" and "our users can set up mail" are two different statements. If the complaint comes from someone who is not in Outlook, checking the Autodiscover record tells you nothing at all.

The domain-chain fallback is a real credential leak, not a theoretical one

In September 2021, Guardicore published research on Outlook implementations that, having failed to find Autodiscover inside a user's own domain, backed off up the domain chain and requested autodiscover.<tld> instead, a domain nobody at the company owned. The researchers registered twenty such names and, between April and August 2021, collected 372,072 Windows domain credentials, 96,671 of them unique, sent to them by mail clients that had simply run out of places to look. Worse, the clients did not wait to be challenged: they attached the credentials to the request up front rather than after a 401.

The twenty domains were TLD variants like autodiscover.fr, autodiscover.xyz and autodiscover.com.br. No .co.za in the set, so if you are reading this from Johannesburg you were not in that particular catch. But nothing about the mechanism was specific to those TLDs, and the reason your TLD was clean is that nobody had got round to registering it. That is not a security control.

Microsoft has since changed the back-off behaviour and the specific hole is narrower than it was. The lesson survives: a domain with no valid Autodiscover configuration is not neutral. Clients keep looking, and where they look next is not up to you. Configure it properly, or make sure it fails fast, which mostly means not leaving half a configuration behind after a migration.

Read the log in order, not the error at the end

Whatever tool you use, the useful information is the sequence rather than the final message. The final message is nearly always the same tired string about not being able to connect. The sequence tells you which step answered, and the step that answered is your bug.

Rough order, from a client that has never connected before: policy or registry overrides and any local XML file, then Microsoft's direct 365 endpoint for supported builds, then the SCP lookup in Active Directory if the machine is domain-joined, then the root domain over HTTPS, then the autodiscover subdomain over HTTPS, then an HTTP redirect on that same name, then the SRV record. Then it gives up and falls back to the last setting it knows worked.

I would not swear to that order to the digit across every Outlook build. Microsoft has moved the 365 direct-connect step around more than once, and a machine joined to a domain behaves differently to a laptop that is not. Read your own log rather than trusting my list or anybody else's. The order in front of you is the order that matters.

Run the domain through the checker, take the Log tab from Test E-mail AutoConfiguration, and put them side by side. The step that answered when it should not have is the one to go and delete.

Try it: find out what actually answers for your domain. Run the Autodiscover and Autoconfig check, confirm the record type with a DNS lookup or the CNAME checker, and read the rest of the tenant records with the Microsoft 365 check.

If the record turns out to be a leftover from a migration that never finished, the wider version of that job — dropping TTLs first, verifying propagation before you flip, and the order to change things in — is a post of its own, coming shortly. And if mail is being rejected rather than misconfigured, that is the blocking article above, not this one.

Source: the credential-leak research is Guardicore's "Autodiscovering the Great Leak", published 22 September 2021 and now hosted by Akamai: https://www.akamai.com/blog/security/autodiscovering-the-great-leak

← Back to all articles