Users in Cached Exchange Mode can't see new colleagues in the address book, and downloading the offline address book (OAB) by hand fails with 0x8004010F or 0x80190194. The cause is usually on the server: no OAB that Outlook can find, an OAB that isn't being generated, or a download URL that leads nowhere. Here's how the OAB reaches Outlook, where each error fits, and how to fix each step.
Errors this guide fixes
Task 'Microsoft Exchange Server' reported error (0x8004010F): 'The operation failed. An object could not be found.'Outlook Send/ReceiveTask '<account>' reported error (0x80190194): 'The operation failed.'Outlook (Download Address Book)0x8004010FOutlook Send/Receive0x80190194Outlook (Download Address Book)
Symptoms#
In classic Outlook for Windows, Send/Receive › Send/Receive Groups › Download Address Book (or a regular Send/Receive) fails with one of these errors (the name in the first quotes varies and can be the account name):
Task 'Microsoft Exchange Server' reported error (0x8004010F): 'The operation failed. An object could not be found.'
Task 'jane@contoso.com' reported error (0x80190194): 'The operation failed.'- The client's OAB folder,
%LOCALAPPDATA%\Microsoft\Outlook\Offline Address Books\<GUID>, is empty or contains only old files. - Online Mode and Outlook on the web show the global address list correctly. (New Outlook for Windows has no Cached Exchange Mode.)
Why it happens#
On Exchange Server SE and 2019 (2016 works the same way), the OAB goes through four stages:
- Generation. The OAB is generated on the Mailbox server that holds the active copy of an organization mailbox with the OAB generation capability. By default that's the arbitration mailbox
SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}, whosePersistedCapabilitiesincludeOrganizationCapabilityOABGen. The files (anoab.xmlmanifest plus.lzxdata files) are written to%ExchangeInstallPath%ClientAccess\OAB\<OAB GUID>on that server. - Assignment. A mailbox gets its OAB from an address book policy, its own
OfflineAddressBooksetting, its database's setting, or the organization's default OAB. - Publishing. Autodiscover gives Outlook a URL such as
https://mail.contoso.com/OAB/<OAB GUID>/oab.xml, but only for an OAB that's distributed through OAB virtual directories: either globally (GlobalWebDistributionEnabled) or through the directories listed in itsVirtualDirectoriesproperty. - Download. Outlook downloads the manifest and the files over HTTPS using the Background Intelligent Transfer Service (BITS). The front-end OAB directory proxies each request to the server that holds the files.
| Error | What it means | Usual causes |
|---|---|---|
0x8004010F | MAPI "not found": Outlook has no OAB it can download | Mailbox, database or policy points to a deleted OAB; OAB not published through any virtual directory; OAB never generated |
0x80190194 | HTTP 404 during the BITS download (hex 194 = 404) | OAB files missing on the server; OAB URL naming an old server or the wrong host; damaged OAB virtual directory |
How to fix it#
1. Check which OAB the user should get#
$mbx = Get-Mailbox -Identity jane@contoso.com
$mbx | Format-List OfflineAddressBook, AddressBookPolicy, Database
Get-MailboxDatabase -Identity $mbx.Database | Format-List Name, OfflineAddressBook
Get-OfflineAddressBook | Format-List Name, Guid, IsDefault, GlobalWebDistributionEnabled, VirtualDirectoriesIf an address book policy is assigned, check its OAB with Get-AddressBookPolicy. Each reference must name an OAB from the Get-OfflineAddressBook list. Replace any that don't:
Set-MailboxDatabase -Identity DB01 -OfflineAddressBook "Default Offline Address Book"
Set-Mailbox -Identity jane@contoso.com -OfflineAddressBook "Default Offline Address Book"2. Make sure the OAB is published#
If GlobalWebDistributionEnabled is False and VirtualDirectories is empty (or lists a directory that no longer exists), Autodiscover has no OAB URL to give Outlook. Global web distribution is the simplest fix. Any OAB virtual directory can then serve the OAB, and nothing needs re-linking when servers change:
Set-OfflineAddressBook -Identity "Default Offline Address Book" -GlobalWebDistributionEnabled $true -VirtualDirectories $nullUse your OAB's name. It can differ in organizations that started on older versions.
3. Check the generation mailbox#
Get-Mailbox -Arbitration | Where-Object { $_.PersistedCapabilities -like "*OAB*" } |
Format-List Name, ServerName, Database, PersistedCapabilitiesWhat good looks like: at least one mailbox with OrganizationCapabilityOABGen on a mounted database. If nothing comes back, the mailbox is gone, often because an old database was removed without moving it first. Recreate it with Microsoft's procedure (linked below). If it's on a database you're retiring, move it:
Get-Mailbox -Arbitration -Identity "SystemMailbox{bb558c35-97f1-4cb9-8ff7-d53741dc928c}" |
New-MoveRequest -TargetDatabase DB024. Generate the OAB and check the files#
Get-OfflineAddressBook | Update-OfflineAddressBookOn the server named in step 3, open %ExchangeInstallPath%ClientAccess\OAB\<OAB GUID>. By default that's C:\Program Files\Microsoft\Exchange Server\V15\ClientAccess\OAB, and the GUID comes from step 1. After a few minutes you should see a new oab.xml and .lzx files with current timestamps. If nothing changes, check that server's Application log for errors that mention OAB generation. Restarting the Microsoft Exchange Mailbox Assistants service also triggers generation; do that out of hours.
5. Check the OAB URL and test the download path#
Get-OabVirtualDirectory -ADPropertiesOnly | Format-Table Server, InternalUrl, ExternalUrl -AutoSizeEvery URL must use a name that's on your certificate and resolves to a current server or load balancer. Admins have traced 0x80190194 to OAB URLs that still pointed at an old, not fully decommissioned server. Fix those first (see setting virtual directory URLs), then test the path Outlook uses:
- Hold Ctrl, right-click the Outlook icon in the notification area and choose Test E-mail AutoConfiguration. Clear the Guessmart boxes and run the test. The Results tab should show an OAB URL. If it doesn't, go back to steps 1 and 2.
- Open
https://mail.contoso.com/OAB/<OAB GUID>/oab.xmlin a browser on the client. After you sign in, you should see the XML manifest. A 404 here is exactly what Outlook reports as 0x80190194. If sign-in fails instead, check the directory's authentication or your load balancer.
6. Clean up the client and download again#
- Close Outlook and delete the contents of the client's
Offline Address Books\<GUID>folder. - Make sure the Background Intelligent Transfer Service isn't disabled on the PC.
- Start Outlook and choose Download Address Book. Clear Download changes since last Send/Receive, keep Full Details and click OK.
Verify the fix#
# On the server that generates the OAB
$oab = Get-OfflineAddressBook -Identity "Default Offline Address Book"
Get-ChildItem (Join-Path $env:ExchangeInstallPath "ClientAccess\OAB\$($oab.Guid)") |
Sort-Object LastWriteTime -Descending | Select-Object -First 5 Name, LastWriteTime- The newest files have today's timestamps.
- The
oab.xmlURL opens in a browser on a client. - A manual download finishes without an error, and the client's OAB folder now has
.oabfiles dated today. - A mailbox created after the fix appears in the cached-mode address book after the next generation and download.
Prevent it next time#
- Before you remove a database or decommission a server, move every arbitration mailbox off it, including the OAB generation mailbox.
- Use global web distribution, so a rebuilt OAB virtual directory doesn't leave the OAB unpublished.
- Keep OAB URLs on your shared namespace, never on server names.
- The OAB is generated on a schedule and Outlook downloads it periodically, so a new mailbox can be missing from cached-mode address books for a while. Test with a manual download.

