Exchange 2013 OAB troubleshooting: Task reported error (0x8004010F): ‘The operation failed. An object cannot be found.’
In my experience, I’ve never had to face an OAB download issue with exchange 2013. This was the first ever.
Exchange team did an excellent job with OAB in Exchange 2013 and made troubleshooting process very seamless.
OAB download wasn’t working on a domain joined and non-domain joined machine.
Error: Task reported error (0x8004010F): ‘The operation failed. An object cannot be found.’
Questions:
Happening for one user or all users?
Happening on one Outlook client or all outlook clients?
Is Outlook updated to the latest version and service pack?
OAB broke internally/externally/both?
When you have an issue with OAB, first thing to check is whether you can see the address list you’re trying to download in Outlook. If it’s missing, outlook just can’t locate the OAB to download.
Data collection:
Let’s collect some data and ensure all settings are configured the way it is supposed to be
1. Make sure authentication settings and URL’s are setup properly:
Get-OabVirtualDirectory -ADPropertiesOnly | ft Identity, *Auth* -AutoSize
2. Make sure URL’s are configured properly
Get-OabVirtualDirectory -ADPropertiesOnly | ft Identity, *url* -AutoSize
3. In Exchange 2013, OAB is processed by mailbox server role which owns the copy of the database of the Arbitration system mailbox with OAB PersistedCapabilities. OAB resides on the mailbox server in the folder “C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\OAB”. The database homing the System mailbox should be active and mounted. Clients will contact the mailbox server on which the OAB files are and downloads directly using AutoDiscover. The database can freely move to other mailbox servers if part of a DAG and the OAB files will be generated immediately for clients to download. In essence, this mailbox server becomes the OAB Generation server in Exchange 2013.
4. Let’s now find out the state of the database on which the Arbitration mailbox resides:
Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like “*OAB*”} | ft Name, Servername, Database
Get-MailboxDatabaseCopyStatus MGUxxx
As shown in the screenshot Servername is MBX2 but the database is mounted on MBX1 which means clients will be contacting that server to download OAB.
5. It is also important to ensure all database have the OAB setup properly.
Use the CMDLET:
Get-MailboxDatabase | Ft Name, *book*
If one or more databases do not have OAB setup, use the CMDLET to set OAB for it
Get-Mailboxdatabase | Set-MailboxDatabase -OfflineAddressBook “Default Offline Address Book”
6. If the issue is only affecting one or specific set of users, check and see if they have an OAB specified on their account:
Get-Mailbox ratish.nair | fl Name, OfflineAddressBook,Database
**This field is blank by default
Troubleshooting:
- Test-ServiceHealth and ensure all required Exchange services are started
- Microsoft Exchange Mailbox Assistant service generates OAB on the server. Try restarting this service on the mailbox server homing the database copy of the Arbitration mailbox
- Try Updating OAB using the cmdlet: Update-OfflineAddressBook “Default Offline Address Book”
- You can create a new Offline address book and assign it to all the databases:
New-OfflineAddressBook -Name “EXCHANGE 2013 OAB” -AddressLists “\Default Global Address List” -VirtualDirectories “MBX3\OAB (Default Web Site)”
Get-Mailboxdatabase | Set-MailboxDatabase -OfflineAddressBook “EXCHANGE 2013 OAB”
5. Try to move the Arbitration mailbox Database to a different server using the cmdlet:
Move-ActiveMailboxDatabase MGU -ActivateOnServer MBX3
Now navigate to the location of OAB and ensure the folder is there.
CAS role accepts the OAB download request from clients and proxies to a Mailbox role server. CAS maintains a log of each request it handles in the log files, present in %ExchangeInstallPath%\Logging\HttpProxy\OAB\. You can open this log in excel and review results.
6. Move the Arbitration mailbox to a new mailbox database
Get-Mailbox -Arbitration -Database DB10 | where {$_.PersistedCapabilities –like “*OAB*”} | New-MoveRequest -TargetDatabase DB12
7. Create a new OAB Gen Arbitration mailbox
New-Mailbox -Arbitration -Name “OABGen” -UserPrincipalName OABGen@exchguru.local –DisplayName “OAB Generation Mailbox” -Database DB30
Set-Mailbox -Arbitration OABGen@exchguru.local -OABGen $true
8. As always, your best friend in troubleshooting is none other as “TestEmailAutoConfiguration” tool in Outlook.
Take a look at the video @ 31.31 minute and understand the Outlook connection process and then jump to using Test email auto configuration with Outlook.
Outlook connection process: http://www.youtube.com/watch?v=AvywR9CWYHs#t=1886
TestEmailAutoConfiguration tool: http://www.youtube.com/watch?v=AvywR9CWYHs#t=2246
If AutoDiscover is not able to retrieve the AutoDiscover.XML file with all URL’s to Outlook, then the client will have trouble – not just with OAB but with EWS and other features.
Review the Authentication settings on both Default website and Exchange backend in IIS
Exchange 2013: HTTP redirection issues with ECP virtual directory – /owa/ecp: https://msexchangeguru.com/2013/10/30/http-redirect-owa-ecp/
Authentication on Default Website and Exchange backend should be Windows Authentication
HTTP Redirect should be disabled:
SSL should be enabled:
Ratish Nair
Microsoft MVP | Exchange Server
Team @MSExchangeGuru.com
Keywords: Exchange 2013 OAB, How to troubleshoot Exchange 2013 OAB, Exchange 2013 Offline address book, Offline address book issues with Exchange 2013
December 8th, 2013 at 11:38 am
[…] Exchange 2013 OAB troubleshooting: Task reported error (0x8004010F): ‘The operation failed. An obj… – […]
December 8th, 2013 at 11:39 am
[…] Exchange 2013 OAB troubleshooting: Task reported error (0x8004010F): ‘The operation failed. An obj… – […]
December 10th, 2013 at 4:59 am
[…] Exchange 2013 OAB troubleshooting: Task reported error (0x8004010F): ‘The operation failed. An… […]
June 25th, 2014 at 8:49 pm
Great article Ratish. I followed all the steps and created a new arbitration mailbox and a new OAB and assigned the new OAB to the mailboxes, but I’m still getting the 0x8004010F error. I’ve also ensured all of the permissions were correct. The only thing that didn’t match up was the Exchange Backend Virtual directories. I only have the PowerShell virtual directory. I’m assuming this is my issue. Is there a way I can rebuilt the virtual directories?
August 25th, 2014 at 9:10 pm
Ratish,
I only have the OAB virtual directory underneath the default website on my CAS servers. There’s only a powershell virtual directory underneath the Exchange Backend directory. I’m assuming I need to rebuild these virtual directories on my CAS servers? If so, whats the best way to go about this?
May 7th, 2015 at 12:42 pm
Ratish,
A fantastic article! Really helpful explaining how to fix corrupt OAB issues. Thank you very much!
October 12th, 2015 at 9:04 pm
[…] https://msexchangeguru.com/2013/12/04/e2013-oab/ […]
February 9th, 2016 at 11:25 am
Hi, searching for a nearly similar Problem. Used Your guide to check OAB Generation Process – works. Outlook can download the OAB, if I use a new Profile. Some old Outlook Profiles can not download the OAB – is it possible to override the current OAB set in the Outlook Profile with a new OAB? This seems to be a Migration issue here.
June 14th, 2016 at 3:50 pm
There can be multiple things. Basic rule is to keep OAB of the Exchange version assigned on the mailbox database. Then on the client side, download full OAB.
September 19th, 2016 at 5:41 am
i was facing the same issue but i have create a new address book and apend that with databases and issue get fixed . For details please click on below mentioned link :
http://onlinedigitalnetworks.blogspot.com/2016/09/offline-address-book-oab-error.html
September 30th, 2016 at 7:30 am
Dear Ratish,
I have gone through your on how to troubleshoot OAB.But in my case all my users outlook client freezes when they try to select All users,All rooms.
Appreciate if any one can suppport to resolve this issue.
October 18th, 2016 at 2:09 pm
Hi,
Great article.
If I run: Get-Mailbox -Arbitration | where {$_.PersistedCapabilities -like “*OAB*”} | ft Name, Servername, Database
I don’t get anything even with “*” – Should I remove the arb mailboxes and recreate them?
October 25th, 2016 at 2:47 am
Don’t remove any Arbitration mailbox. Rather create one for OAB.
October 25th, 2016 at 2:50 am
Thank you for contacting us.
Let us know if the issue is still there and you are looking forward to a professional service to fix it.
info@GoldenFive.net
May 13th, 2017 at 5:46 pm
We have a Exchange 2010 and Exchange 2013, now can’t get OAB to download. When I look at my account the OAB is missing and assigning it does not get error or fix the issue
May 15th, 2017 at 1:06 am
There could be many issues. I hope arbitration mailboxes are active.
September 12th, 2017 at 6:29 am
I installed the CU16 and the problem is resolved