Cannot expand the folder. The set of folders cannot be opened.
Ao tentar abrir uma mailbox com o Outlook, aparecia um erro dizendo: Cannot expand the folder. The set of folders cannot be opened. Microsoft Exchange is not available. Either there are network problems or the Exchange server is down for maintenance.
No Event Viwer era gerado o seguinte erro:
Microsoft Outlook
Cannot expand the folder. The set of folders cannot be opened. Microsoft Exchange is not available. Either there are network problems or the Exchange server is down for maintenance.
P1: 300032
P2: 16.0.10325.20118
P3:
P4: 0x8004011D
Troubleshooting:
Usei então o Fiddler para obter logs mais conclusivas sobre o erro. Notei que o Autodiscover era executado com sucesso, a resposta SOAP trazia todos os dados corretos da mailbox sem nenhum erro. Posteriormente ocorria o SSL handshake que também era executado com sucesso.
Entretanto após o Autodiscover e SSL Handshake o Outlook deveria iniciar as conexões para abertura da mailbox, seja em RPC over HTTP ou MAPI over HTTP. Ao analisar as logs de tentativa de abertura, obtive o seguinte erro:
Microsoft.Exchange.Rpc.RpcException: Client is being backed off —> Microsoft.Exchange.RpcClientAccess.ServerTooBusyException: Client is being backed off —> Microsoft.Exchange.RpcClientAccess.ClientBackoffException: Client connect is backed off —> Microsoft.Exchange.RpcClientAccess.Server.LoginPermException: ‘User SID: S-1-5-21-1144410367-3042246465-1959246801-1157’ can’t act as owner of a UserMailbox object ‘/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=f55dcba97d594669b25c157afdc26b40-Linke’ with SID S-1-5-21-1144410367-3042246465-1959246801-1156 and MasterAccountSid (StoreError=LoginPerm)
at Microsoft.Exchange.RpcClientAccess.Server.UserManager.User.CorrelateIdentityWithLegacyDN(ClientSecurityContext clientSecurityContext)
at Microsoft.Exchange.RpcClientAccess.Server.RpcDispatch.<>c__DisplayClassc.<Connect>b__8()
at Microsoft.Exchange.RpcClientAccess.Server.RpcDispatch.ExecuteWrapper(Func`1 getExecuteParameters, Func`1 executeDelegate, Action`1 exceptionSerializationDelegate)
Lendo o erro com atenção, o mesmo diz que o usuário com o SID X não pode abrir a mailbox com o SID Y pois não tem permissão para isso. O erro era claramente como se eu estivesse tentando abrir uma mailbox utilizando um usuário no qual não houvesse permissão para tal. Contudo o cenário não era esse, eu estava tentando abrir a mailbox do usuário Y logando com as credenciais do usuário Y, portanto esse erro não fazia sentido algum.
Para tentar sanar o erro, tentei abrir usando o login no formato netBIOS (contoso\usuario) e UPN (usuario@contoso). Em ambos os modos o erro era sempre o mesmo.
Verificando qual era o SID correspondente a usuário “X”, validei que correspondia a um usuário chamado l7. Já o usuário que eu estava tentando abrir a mailbox era o usuário l6.
Resolução:
Com um pouco de paciência e pesquisas, confirmei que o problema de fato era vinculado a credenciais. Ocorria que talvez por algum bug, o Windows não aplicava as credenciais que eu digitava para as conexões ao endereço do Exchange (mail.contoso.com). Ao invés de aplicar as credenciais que eu digitava, o Windows usava as credenciais do usuário l7 que estavam salvas em “Windows Credentials”. Isso porque o l7 já possuía também um perfil de Outlook configurado no computador.
Deletei então todas as credenciais vinculadas aos nomes usados pelo Exchange (mail e autodiscover).
Após a remoção das credenciais, consegui abrir a mailbox sem nenhum problema.