OAB Generation fails with 9108, 9126, 9175 and MAPI Error code 0x80040402

Under certain conditions the OAB generation process can fail with the following errors: 9108, 9126 and 9175. These event id's are common and will always be logged if the OAB Generation process has a failure.

  • 9108 - The Address List that is linked to your Offline Address List.
  • 9126 - Common error, the most important thing here is the error in the brackets [0x80004005].
  • 9175 - Which is a common error indicating that we have not been able to access the information store. Again what is really important here is the MAPI ID: 00000000-0000-00000000 or 80040111-0286-00000000.
  • NOTE: When the generation of offline address lists fail, you may receive the following error message in Exchange System Manager: MAPI or an unspecified service provider. ID no: 00000000-0000-00000000 ID no: c1050000 Exchange System Manager

Here is what they look like in the application log.

Event ID: 9108
Event Type: Information
Event Source: MSExchangeSA
Event Category: (13)
Description: Offline Address List is being generated for \Global Address List.

Event ID: 9126
Event Type: Error
Event Source: MSExchangeSA
Event Category: (13)
Description: OALGen encountered error [0x80004005] while calculating this OAL. This OAL will not be available for client download. (\Global Address List)

Event ID: 9175
Event Type: Error
Event Source: MSExchangeSA
Event Category: MAPI Session
Description: The MAPI call 'OpenMsgStore' failed with the following error: The information store could not be opened. The logon to the Microsoft Exchange Server computer failed. MAPI 1.0 ID no: 80040111-0286-00000000

With these particular error codes listed above this would indicate that someone might be using the DS Servers registry key. For more information on how the OAB Generation process uses a System Attendant Profile and is affected by the DS Servers key, please reference: https://blogs.msdn.com/dgoldman/archive/2006/05/06/The-DS-Server-registry-key-and-rebuilding-an-Offline-Address-List.aspx

Ok, as I mentioned above when you are troubleshooting any type of error the most important thing to do when looking at the application log event id's is to also look at the error codes that are listed in them. Below I am listing the same 9126 event id, however the status code is different.

Event ID: 9126
Event Type: Error
Event Source: MSExchangeSA
Event Category: (13)
Description: OALGen encountered error [0x80040402] while calculating this OAL. This OAL will not be available for client download. (\Global Address List)

In this case the status code is: 0x80040402. Now if you really want to solve issues like this or any others, you need to figure out what that error code means. To do so you can download a copy of the (Microsoft Exchange Server Error Code Look-up Tool) and run err.exe YOURERRORCODE:

C:\Windows\system32>err 0x80040402
# for hex 0x80040402/ decimal -2147220478
ecTableEmpty                  ec.h
MAPI_E_TABLE_EMPTY     mapicode.h

Once you run err.exe against that error code you can see that the real problem here is we are failing with MAPI_E_TABLE_EMPTY. In this case you will get this error if OALGen.dll retrieves address lists from Active Directory, and the constraint for the address list field in the database are defined as NOT NULL.

How to fix #1

  1. Log on as an Exchange administrator.
  2. Open the Exchange System Manager - (ESM).
  3. Expand the Recipients container.
  4. Right-click Offline Address Lists.
  5. Click New.
  6. Click Offline Address List.
  7. Give your Offline Address List a name.
  8. Click Browse.
  9. Click the Offline address list server.
  10. Click Add to add populated address lists from the Select Address lists menu, or accept the default Default Global Address List that is present in
    the Address lists field.
  11. Click Next.
    Click Next.
  12. Click Finish.
  13. Right-click Default Offline Address List, and then click Rebuild.

How to fix #2

You might also be able to fix this if you already have a Default Offline Address List however the Global Address List is no longer linked. You can follow the above mentioned steps however you just need to pull up the properties for your Offline Address List and make sure that the Global Address List is specified.

Dave