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

Applies To
Exchange Server 2019 Exchange 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.