Issue Description
New Outlook for Mac won’t set up an account against our server. It gets most of the way through autodiscovery and then falls over at the last step.
We host about 21 domains on one Stalwart instance, TLS direct on the server, no proxy in front, ACME with TLS-ALPN-01. The domain in question got its cert this morning and it covers all four autodiscovery hostnames. Thunderbird and other clients pick up settings fine via the Mozilla autoconfig XML, so discovery generally works.
What Outlook does is hit the v2 JSON endpoint, get a valid pointer back, follow it to /autodiscover/autodiscover.xml, and then the server answers resource.not-found. Every time. Six attempts, same result.
The confusing part is that if I POST to that same URL by hand with curl I get a 200 and a complete response with the right IMAP and SMTP settings. So the endpoint works, just not for whatever Outlook is sending.
Expected Behavior
Docs say clients reaching the server over HTTPS get the autoconfig and autodiscover documents automatically, and that v1 and v2 are both supported for Outlook. So I’d expect Outlook to get the v1 response after following the redirect and configure itself.
Actual Behavior
Outlook’s requests to the v1 endpoint come back as resource.not-found, the client never gets settings, and it drops to the manual provider picker. Its own log records HxProbeAccountSettingsFailureResults error 111.
Same URL with a hand-built POST returns 200, which is the bit I can’t explain and cannot post logs, as I limited to 2 URLs.
Reproduction Steps
- Domain configured with ACME cert management, default autodiscovery hostnames, cert issued and verifying
- Add the account in new Outlook for Mac
- Outlook queries the v2 endpoint three times (ActiveSync, REST, AutodiscoverV1), follows the URL it gets back
- Server returns resource.not-found
- Provider picker appears
Relevant Log Output
2026-09-21T12:48:36Z DEBUG HTTP request URL (http.request-url) listenerId = “https”, localPort = 443, remoteIp = , url = “/autodiscover/autodiscover.json/v1.0/[email protected]?Protocol=AutodiscoverV1&RedirectCount=1”
2026-09-21T12:48:36Z DEBUG HTTP request URL (http.request-url) listenerId = “https”, localPort = 443, remoteIp = , url = “/autodiscover/autodiscover.json/v1.0/[email protected]?Protocol=REST&RedirectCount=1”
2026-09-21T12:48:37Z DEBUG HTTP request URL (http.request-url) listenerId = “https”, localPort = 443, remoteIp = , url = “/autodiscover/autodiscover.xml”
2026-09-21T12:48:37Z DEBUG Resource not found (resource.not-found) listenerId = “https”, localPort = 443, remoteIp =
Outlook side, same minute:
Autodetect: Begin {“Domain”:“example”}
Autodetect: Failed {“Method”:1,“Duration”:18.6,“ErrorCode”:111,“ErrorString”:“HxProbeAccountSettingsFailureResults error 111”,“Domain”:“example”}
OlkAccountConfigEmailAdvancedPhase: AutoConfig service did not return relevant results
Provider Picker: Enter
Stalwart Version
v0.16.x
Installation Method
Binary (Linux)
Database Backend
RocksDB
Blob Storage
Filesystem
Search Engine
Internal
Directory Backend
Internal
Additional Context
Client is new Outlook for Mac
Things I checked and ruled out before posting: DNS resolves all four hostnames to the server; cert SANs are autoconfig., autodiscover., mta-sts. and ua-auto-config.example.com and openssl s_client -servername autodiscover.example.com gives Verify return code: 0 (ok); no IP blocking or rate limiting hitting the client; tcpdump confirms Outlook connects to both the autodiscover host and the redirect target so it is following the redirect; another domain on the same box returns identical v2 and v1 responses, so it’s not domain-specific.
Minor thing while I’m here: the v2 endpoint returns 400 InvalidProtocol for ActiveSync and REST, which Outlook probes before AutodiscoverV1. Assume that’s intentional but mentioning it in case those clients want something else back.
I have reviewed the documentation and FAQ and confirm that my issue is NOT addressed there.
on
I have searched this support forum (open and closed topics) and confirm this is not a duplicate.
on
I understand that topics in this category are triaged by a bot first but a human reply will follow up. If I’d prefer a human-only reply, I’ll add the no-ai tag to my topic.
on