Outlook 2007 users cannot view Free/Busy times for any user.

After looking at this, we verified that Autodiscover was in fact working properly and the correct URLS were being returned.

With that said, we then opened https://servername.domain.com/ews/services.wsdl and this returned successfully. This file is used to describe the operations and properties exposed to the client when a SOAP request is made to determine how to handle the free/busy requests amongst other things. More information on the services.wsdl file can be had at https://msdn2.microsoft.com/en-us/library/bb408417.aspx

Enabling Outlook logging per https://support.microsoft.com/kb/831053 , we scheduled a meeting request to view free/busy which of course failed. The good thing is with the logging turned up, we could then looking at the Free/Busy log in the %temp%\olkas directory to see what was up.

Here is what the SOAP request consisted of

<soap:Body><GetUserAvailabilityResponse xmlns="https://schemas.microsoft.com/exchange/services/2006/messages">
<FreeBusyResponseArray><FreeBusyResponse>
<ResponseMessage ResponseClass="Error"><MessageText>Mailbox logon failed., inner exception: Cannot open mailbox /o=Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=Test1.</MessageText>
<ResponseCode>ErrorMailboxLogonFailed</ResponseCode>
<DescriptiveLinkKey>0</DescriptiveLinkKey><MessageXml>
<ExceptionType
xmlns="https://schemas.microsoft.com/exchange/services/2006/errors">Microsoft.Exchange.InfoWorker.Common.Availability.MailboxLogonFailedException</ExceptionType>
<ExceptionCode
xmlns="https://schemas.microsoft.com/exchange/services/2006/errors">5008</ExceptionCode></MessageXml></ResponseMessage><FreeBusyView>
<FreeBusyViewType
xmlns="https://schemas.microsoft.com/exchange/services/2006/types">None</FreeBusyViewType>
</FreeBusyView></FreeBusyResponse></FreeBusyResponseArray></GetUserAvailabilityResponse></soap:Body></soap:Envelope> 2007/12/17 09:22:48.281: XML response processed successfully

So we received an error code of 5008 which is MailboxLogonFailed

We turned on service side tracing and noticed in the call, we received this error.
Microsoft.Mapi.MapiExceptionUnknownUser: MapiExceptionUnknownUser: Unable to make connection to the server. (hr=0x80004005, ec=1003)

Unknown user, eh? We ran get-mailbox against the mailbox GUID of the user and we found the user no problem. So what gives?

Oddly enough, runnning test-mapiconnectivity -verbose, we see the same failure with this unknown user since 1003 is ecUnknownUser, so this was  definately not a client side issue, but a server side issue.

StorageGroup : First Storage Group
Database     : Mailbox Database
Mailbox      : SystemMailbox{81E05D2A-1321-427B-A12D-B78A7931E3D5}
Result       : *FAILURE*
Latency      : 00:00:00
Error        : [Microsoft.Exchange.Data.Storage.MailboxUnavailableException]: C
               annot open mailbox . Inner error [Microsoft.Mapi.MapiExceptionUn
               knownUser]: MapiExceptionUnknownUser: Unable to make connection
               to the server. (hr=0x80004005, ec=1003)
               Diagnostic context:
                   ......
                   Lid: 28153   EcDoConnectEx exception [rpc_status=0x6BA][latency=0]
                   Lid: 16280   dwParam: 0x6BA      Msg: EEInfo: ComputerName: n/a
                   Lid: 8600    dwParam: 0x6BA      Msg: EEInfo: ProcessID: 4932
                   Lid: 12696   dwParam: 0x6BA      Msg: EEInfo: Generation Time: 2007-12-17 16:33:29:752
                   Lid: 10648   dwParam: 0x6BA      Msg: EEInfo: Generating component: 2
                   Lid: 14744   dwParam: 0x6BA      Msg: EEInfo: Status: 1722
                   Lid: 9624    dwParam: 0x6BA      Msg: EEInfo: Detection location: 390
                   Lid: 13720   dwParam: 0x6BA      Msg: EEInfo: Flags: 0
                   Lid: 11672   dwParam: 0x6BA      Msg: EEInfo: NumberOfParameters: 2
                   Lid: 8856    dwParam: 0x6BA      Msg: EEInfo: prm[0]: Unicode string: ipc017.indelan.com
                   Lid: 8856    dwParam: 0x6BA      Msg: EEInfo: prm[1]: Unicode string: IPC017
                   Lid: 23065   EcDoConnectEx called [length=182]
                   Lid: 17913   EcDoConnectEx returned [ec=0x3EB][length=56][latency=0]
                   Lid: 19778 
                   Lid: 27970   StoreEc: 0x3EB    
                   Lid: 17730 
                   Lid: 25922   StoreEc: 0x3EB    

We found out that there was a failed SP1 installation on the server and many things were done to the server before I got my hands on this issue. We had to fix that problem and shortly thereafter, we saw the following in the application log and this is the same Unknown user error that we received before.

Event Type: Warning
Event Source: MSExchange Search Indexer
Event Category: General
Event ID: 107
User:  N/A
Description:
Exchange Search Indexer has temporarily disabled indexing of the Mailbox Database First Storage Group\Mailbox Database (GUID = 81e05d2a-1321-427b-a12d-b78a7931e3d5) due to an error (Microsoft.Mapi.MapiExceptionUnknownUser: MapiExceptionUnknownUser: Unable to make connection to the server. (hr=0x80004005, ec=1003)
Diagnostic context:
    Lid: 23065   EcDoConnectEx called [length=182]
    Lid: 17913   EcDoConnectEx returned [ec=0x3EB][length=56][latency=0]
    Lid: 19778 
    Lid: 27970   StoreEc: 0x3EB    
    Lid: 17730 
    Lid: 25922   StoreEc: 0x3EB    
   at Microsoft.Mapi.MapiExceptionHelper.ThrowIfError(String message, Int32 hresult, Int32 ec, DiagnosticContext diagCtx)
   at Microsoft.Mapi.ExRpcConnection.Create(ConnectionCache connectionCache, ExRpcConnectionCreateFlag createFlags, ConnectFlag connectFlags, String serverDn, String userDn, String user, String domain, String password, String httpProxyServerName, Int32 ulConMod, Int32 lcidString, Int32 lcidSort, Int32 cpid, Int32 cReconnectIntervalInMins, Int32 cbRpcBufferSize, Int32 cbAuxBufferSize)
   at Microsoft.Mapi.ConnectionCache.OpenMapiStore(String mailboxDn, Guid mailboxGuid, Guid mdbGuid, ClientIdentityInfo clientIdentity, String userDnAs, OpenStoreFlag openStoreFlags, CultureInfo cultureInfo, String applicationId)
   at Microsoft.Mapi.ConnectionCache.OpenMailbox(String mailboxDn, Guid mailboxGuid, Guid mdbGuid, ClientIdentityInfo clientIdentity, String userDnAs, OpenStoreFlag openStoreFlags, CultureInfo cultureInfo, String applicationId)
   at Microsoft.Exchange.Search.MailboxCache.GetMailbox(ServerMdbAndMailboxGuids guids)
   at Microsoft.Exchange.Search.RetriableOperations.GetMailboxForUser(ThreadLocalCrawlData crawlData, Guid mailboxGuid, Object unusedSourceParam, Object unusedParam1, Object unusedParam2)
   at Microsoft.Exchange.Search.RetriableOperations.DoRetriableMapiOperation[SourceType,ReturnType,Parameter1Type,Parameter2Type](ThreadLocalCrawlData crawlData, Guid mailboxGuid, SourceType source, Parameter1Type parameter1, Parameter2Type parameter2, MapiOperationDelegate`4 operationDelegate)
   at Microsoft.Exchange.Search.Crawler.CrawlUser(Guid mailboxGuidToCrawl, ThreadLocalCrawlData crawlData, Boolean finalRetry)).

Since most of these functions rely on the System Attendant Mailbox to perform these functions, we opened the EMC and navigated to Disconnected Mailboxes. Low and behold, the SA mailbox was disconnected for whatever reason, possibly due to the failed SP1 installation.

To verify this, we opened up ADSIEDIT and navigated to the System Attendant object under this servers configuration object and found that HomeMDB was missing for the System Attendant.

Now to fix this, we added the correct DN of the First Storage Group\Mailbox Store which is where this mailbox normally resides to the System Attendant's objects HomeMDB attribute and saved it. After restarting the System Attendant service, Free/Busy, Content Indexing and the test-mapiconnectivity cmdlets started working again. Life was good once again.

Keep in mind that a lot of the server side functions rely on the System Attendant mailbox, so check that this mailbox is in tact and connected in your troubleshooting efforts.

-Mike