AutodiscoverV2 request returns REST API endpoint not AutoDiscoverV1 endpoint in Exchange Server 2019 and 2016

Applies to: Exchange Server 2019Exchange Server 2016

Symptoms


Assume that you try to make a GET request to get the AutodiscoverV1 endpoint for a mailbox (for example, user1@contoso.com) that’s hosted on Microsoft Exchange Server 2019 or Exchange Server 2016. The JSON emitted is {"Protocol":"AutoDiscoverV1","Url":"https://mail.contoso.com/api"} instead of {"Protocol":"AutoDiscoverV1","Url":"https://autodiscover.contoso.com/autodiscover/autodiscover.xml"}.

Cause


AutodiscoverV1 isn't in the enumeration of SupportedProtocol. The result is that in the ResourceUrlBuilder.GetResourceUrlSuffixForProtocol method, the wrong enumeration value is computed. When the code uses Enum.TryParse, it doesn't check the return value to see whether the parse is successful. The parse isn’t successful, and the enumeration value ends up being REST. That causes the REST endpoint to be returned.

Resolution


To fix this issue, install one of the following updates:

References


Learn about the terminology that Microsoft uses to describe software updates.