Guide to Error Codes
Guide to MAPI Error Codes

Version 5.0

This help file is a Microsoft-internal trouble-shooting tool.  If you give this file to a customer or beta site you will be hung by your ankles in the building 16 atrium and used as target practice for our nerf-uzis.

These error code list is not comprehensive.  The list is a compilation of what I have read from the source code and what System Test, Component Test, Ireland, and PSS have reported.  There could very well be more error codes than the ones below.

Comments, Suggestions, and Additions

Dissecting A MAPI Error Code

The bold error codes in the following list were ones acutally hit by testing.  The non-bold ones were just read from the source code.

00040203

00040380

00040481

00040482

00040580

00040680

02040380

80000000

80000002

80000003

80000008

80000009

80004002

80004005

80010104

80010105

80040010

80040100

80040102

80040103

80040105

80040106

80040107

80040108

80040109

8004010A

8004010B

8004010D

8004010E

8004010F

80040110

80040111

80040112

80040113

80040114

80040115

80040116

80040117

80040118

80040119

8004011A

8004011B

8004011C

8004011D

80040151

80040154

80040200

80040201

80040202

80040301

80040302

80040303

80040304

80040305

80040306

80040380

80040401

80040402

80040403

80040404

80040405

800404B5

80040500

80040501

80040502

80040600

80040601

80040602

80040604

80040605

80040606

80040607

80040608

80040609

8004060A

8004060B

80040700

8004270F

80070005

8007000E

80070057

81002713

81002EE1

81002EF9

8100A710

810043FA

8204010F


Comments, Suggestions, and Additions

If you have comments, suggestions, or additions, please send them to me (TedW) in e-mail.  I will put updates out on \\greatone\public\tedw.  If this tool proves useful & popular, I will give it to the UE team make a more polished version for the final product.


00040203

Constant:  MAPI_W_NO_SERVICE

Description:  This warning message indicates that the service provider is not present.

Testing:  There have been no reports of this error message during testing.


00040380

Constant:  MAPI_W_ERRORS_RETURNED

Description:  This is a non-fatal warning code, not an error code.  Other than that, there is not much we can decypher from this error code.  The 4 indicates that Capone (or some MAPI interface application) was running, the 03 indicates a problem with a MAPI property value, but 80 just means Errors Returned.

Testing:  We have not hit this precise error code, but we have hit something very similar.  See 02040380


00040481

Constant:  MAPI_W_POSITION_CHANGED

Description:

Testing:  There have been no reports of this error message during testing.


00040482

Constant:  MAPI_W_APPROX_COUNT

Description:

Testing:  There have been no reports of this error message during testing.


00040580

Constant:  MAPI_W_CANCEL_MESSAGE

Description:

Testing:  There have been no reports of this error message during testing.


00040680

Constant:  MAPI_W_PARTIAL_COMPLETION

Description:  This error message indicates that a message store action (like moving or copying messages) was only partially completed.

Testing:  We hit this once in dogfood when trying to move a selection of about 12 messages from an MDB Inbox to a PST Inbox.  We do not know exactly what the problem was, but it was probably an early indication of the MDB going down.


02040380

Error message text: Could not initialize provider [filename.DLL]

Testing:  The System Test team hit this error consistently when trying to define the User Name in the Messaging Profiles applet.  Apparently, we were trying to connect to a Netware server using the IPX protocol and failing to see the server.  The solution was to go back to the Server Name: field and enter the netcard address of the server, a 20-place hexidecimal number preceded by a tilde.


80000000

Error message text:  Your Security profile is damaged.  Contact your administrator to initiate recovery.  The command you specified could not be carried out.

Testing:  We hit this error message once when opening seven security-encrypted messages at once.  We have yet to determine if there was any actual damage to the security profile, as everything seems to be working fine.


80000002

Error message text:  Out of memory.  Close some windows and try again.

Testing:  Bug 12642: This error code comes up when the Eform Designer tries to install a form which is larger than the 64KB limit.

We have also learned that this bug can be a symtom of a memory leak in Capone that we were unable to hammer out of the system in time for TR2.  The best solution is to exit and restart Windows.


80000003

Error message text:  Varies.  We have seen the following error messages associated with this error code:

An error has occurred.

Changes to the item could not be saved.  The action could not be completed. Microsoft Exchange Client - 9997.

Testing:  We hit this error message once when attempting to edit an extraneous copy of the Personal Address Book provider in the profile applet.  The only way we found that corrected the problem was to remove the provider and add it back in again.

Bug 13580: We also hit this error code after doing a File:Send from Word for Windows and then trying to do a File:Save in the Exchange window that was generated.  This was fixed in beta2.


80000008

Error message text:  Varies.  We have seen the following messages accompany this error code:

Unable to delete existing profile.

The folder could not be viewed. The client operation failed.

Folder forms and views could not be copied.  The client operation failed.

Testing:  We have hit this error many times.  Here are the occurances we have documented:

1. We tried to change the Delivery or Addressing profile setting for a mailbox to which we did not have User rights.  To fix this, you have to run the EMS Administrator program, double-click on the mailbox, go to the Permissions tab, and add the NT Account of that user to the list of Users for that mailbox.

2.  We tried to view a new public folder immediately after creating it. We think this was because the identifier of the folder had not been synchronized yet. If that is the case, then the work-around is to wait a while before using a new public folder.

3.  We tried copying a file from File Manager to the Exchange Inbox without having the DirectHost=off line defined in our system.ini.  This resulted in two error messages.  The first message stated

The file could not be added to the folder. Network problems are preventing connection to the MS Exchange Server computer.  MS Exchange Server Information Store - 2019 - [80040115:00000022]

The second message stated:

The file could not be added to the folder. The client operation failed.  MS Exchange Server Information Store - 2001 - [80000008:000004B9]

Once we set the DirectHost=off line in the system.ini this problem went away.

4.  Bug 14052: We hit this once in Tools:CopyFolderDesign when copying a complex eform (chess) from a public folder to a PST folder.  The problem was that the CopyFolderDesign code was opening the public folder with the MAPI_MODIFY flag when it only needed to read the folder.  Once this flag was removed (in beta2) the problem went away.


80000009

Error message text:  Varies.  We have seen the following text accompanying this error code:

You cannot create a second copy of this message service in your profile.

The information for Send On Behalf Of could not be displayed. Access to this object is denied.

Testing:  We hit this error message when we tried to add a second Personal Address Book to a profile.  Apparently the PAB contains a RossPerot subroutine which looks for the presence of other PABs.  If it finds one, it will not add itself to the profile.

Bug 12942: We also hit this problem when trying to select the SendOnBehalf button in the Exchange config applet while offline. This was fixed in beta2 by disabling SendOnBehalf while offline.


80004002

Constant:  MAPI_E_INTERFACE_NOT_SUPPORTED

Description:  This error message would surface if a MAPI client app (like Capone) were to make a MAPI call that MAPI did not recognize.

Testing:  We have not run into this one yet, other than by reading through the source code.


80004005

Constant: MAPI_E_CALL_FAILED

Error Message:  We have seen the following text messages accompany this error code:

An unexpected unknown error has occurred.  MAPI 1.0 or an unspecified provider.

The item could not be displayed. The client operation failed. Microsoft Exchange Server Information Store - 2001.

Description: This is the generic error code returned by functions that do not know what else to return.  It does not give us any clues as to which call failed or when.

Testing:  We have hit this error code a few times.  Here are the scenarios which caused it:

1.  We got this when firing up EMSAdmin.Exe immediately after adding a gateway object to the directory service.  We had added the gateway object using DSImport.Exe at the command prompt.  The solution was to shutdown EMSAdmin and then shutdown and restart the server.

2.  Bug 13681: We got this error message when trying to open a non-delivery report generated by sending to an invalid x500 address.  The problem was fixed in beta2.


80010104

Error Message:  The message could not be displayed.

Testing:  We hit this once during dogfood testing.  We were trying to open a message from a .PST which was located on a different machine.  When we checked the net connection and tried again, the message opened just fine.  The only explanation we have is that there might have been some sort of temporary network glitch that caused this error.


80010105

Error Message:  Command cannot be carried out.

Testing:  Bug 14266: This error code appeared when we tried to open a conflict notification message in a shared folder from a Windows 95 client.  This was fixed in beta2.


80040010

Description:  This error code indicates a Capone/MAPI version mismatch.

Testing:  We ran into this when we tried to use an old version of MAPI with a newer version of Capone.  The solution was to upgrade MAPI to the same version as Capone.


80040100

Description:  This is the generic error code returned by many MAPI functions which Capone calls.

Testing:  While it is virtually impossible to diagnose the cause of this error, we found that the most common cause was that the server had crashed.


80040102

Constant:  MAPI_E_NO_SUPPORT

Description:  This error code indicates that a client application made a MAPI call which is not supported by the service provider.

Testing:  We hit this several times:

1.  We were running Windows95 build 165 but had only partially updated the Windows Messaging Subsystem.  Thus, some of the .DLLs were from the current build (305) and some were from the TR2 build (168).  The solution was to update all the .DLLs.

2.  We hit this once when we tried to mark a message as read in the Microsoft Shared Folders store.  That was fixed for the final release of Exchange.

3.  Bug 13153: We hit this when trying to change the name of an attachment in a message in a shared folder.  As the constant name suggests, this is not supported.  The fix was to add a more descriptive error message.


80040103

Constant:  MAPI_E_BAD_CHARWIDTH

Description:  One of the parameters fed to this function either contained too many or too few bytes.

Testing:  There have been no reports of this error code during testing.


80040105

Constant: MAPI_E_STRING_TOO_LONG

Description:  One of the string parameters fed to this function contained too many characters.

Testing:  There have been no reports of this error code during testing.


80040106

Constant:  MAPI_E_UNKNOWN_FLAGS

Description:  The parameter to this function which indicates certain flag values contained an unrecognized value.

Testing:  There have been no reports of this error code during testing.


80040107

Constant:  MAPI_E_INVALID_ENTRYID

Description:

Testing:  There have been no reports of this error message during testing.


80040108

Constant:  MAPI_E_INVALID_OBJECT

Description:

Testing:  There have been no reports of this error message during testing.


80040109

Constant:  MAPI_E_OBJECT_CHANGED

Description:

Testing:  There have been no reports of this error message during testing.


8004010A

Constant:  MAPI_E_OBJECT_DELETED

Description:

Testing:  There have been no reports of this error message during testing.


8004010B

Constant:  MAPI_E_BUSY

Description:

Testing:  There have been no reports of this error message during testing.


8004010D

Constant:  MAPI_E_NOT_ENOUGH_DISK

Description: The function attempted to add information a disk which is full.

Testing:  There have been no reports of this error message during testing.


8004010E

Constant:  MAPI_E_NOT_ENOUGH_RESOURCES

Description:

Testing:  There have been no reports of this error message during testing.


8004010F

Constant:  MAPI_E_NOT_FOUND

Testing:  We have hit this error message in several different ways:

1. When we tried to edit the MS Internet Mail Service provider in the Windows95 Messaging Profiles applet.  Apparently the Internet Mail Service provider was not meant to be edited by this method.

2.  We had two messages in a public folder each of which had update conflicts which needed to be resolved.  When we opened one message and pressed the View Previous button we got this error.  We are still determining what caused this problem.

3.  We opened the mapisvc.inf and added the line BOGUS=An Invalid Service to the [Services] section.  We then opened the config applet and tried to add that service to a profile.  The resulting error message contained just the error code 8004010F, no text. This was fixed post-beta2.

4.  Bug 13205: This surfaced once in the auto-comment search feature of the chess eform. This feature was disabled in beta2.

PSS:  You could get this error from many of the methods in the different MAPI interfaces. The most common scenario is when opening an object (usually a message or folder) which no longer exists in the current container where the OpenProperty() was executed.  Writers of client apps who maintain cached EntryIDs must be careful to make sure they keep track of deleted or moved objects. When an object is moved to a different container or subcontainer their Entry ID is not guaranteed to be the same (of course this could depend on the actual provider implementation where the container exists).


80040110

Constant:  MAPI_E_VERSION

Description:  This error code indicates a Capone/EMS version mismatch.

Testing:  We hit this one when we ran an old drop of Capone against a newer drop of the EMS server.  The solution was to upgrade Capone to the same version as the server.


80040111

Constant:  MAPI_E_LOGON_FAILED

Description:  This error code results when the EMS server refuses to let a MAPI client log on.

Testing:  We hit this error message many times.

The most common cause of this problem was that the NT account we were logged on as did not have User rights to the mailbox.  To fix this, we had to run the EMS Administrator program, double-click on the mailbox, go to the Permissions tab, and add the NT Account to the list of Users for that mailbox.

We once hit this error on Windows95 (build 166 -- post-TR2) when trying to select the Personal Information Store in the Explorer.  The problem was that we had not fully updated the Windows Messaging Subsystem.  Some of the .DLLs were current (build 305) and some were quite old (168).  The solution was to update all the .DLLs with the current version.


80040112

Constant:  MAPI_E_SESSION_LIMIT

Description:

Testing:  There have been no reports of this error message during testing.


80040113

Constant:  MAPI_E_USER_CANCEL

Description:

Testing:  There have been no reports of this error message during testing.


80040114

Constant:  MAPI_E_UNABLE_TO_ABORT

Description:

Testing:  There have been no reports of this error message during testing.


80040115

Constant:  MAPI_E_NETWORK_ERROR

Description:  About all the information available here is in the constant name.  MAPI thinks the network is down.

Testing:  We have found that the vast majority of the time this is caused by the server going down (not the network).

On one occasion we hit this error code when we were trying to copy a document file from File Manager to the Exchange Inbox folder.  The problem turned out to be that the user did not have DirectHost=off  set in his system.ini file. Once that was set, the problem went away.


80040116

Constant:  MAPI_E_DISK_ERROR

Description:

Testing:  There have been no reports of this error message during testing.


80040117

Constant:  MAPI_E_TOO_COMPLEX

Testing:  We hit this in the Tools:Find dialog when we tried to sort the messages on the InFolder column. The reason we get this error is that the MDB does not support sorting on folder names.  This feature was cut after beta1.


80040118

Constant:  MAPI_E_BAD_COLUMN

Description:

Testing:  There have been no reports of this error message during testing.


80040119

Constant:  MAPI_E_EXTENDED_ERROR

Description:  This is a generic error message that many file system functions return.

Testing:  We have several documented occurances of this error code:

1. We were running the Windows95 Mail and Fax control panel applet.  We tried to save the Personal Address Book file in a non-existent directory.  The error message read: Changes could not be saved.  The solution was to create the directory (using the Windows95 Explorer) and then save the PAB there.

2.  We tried to launch an eform from a PST when we had less than 64KB of disk space left.  This generated the error message:

The form you selected could not be displayed. An error occurred registering the form in the OLE registry. Error code 0x80040151 [80040119].

This is a bug which we plan to fix before final release.

3.  We were trying to connect to an MSMail 3.2 postoffice using the Exchange client and a modem.  We succeeded in getting a RAS connection, but then we got the error:

The headers could not be updated. An error occurred while updating headers.  Microsoft Mail - 435.

We are still investigating this problem.


8004011A

Constant:  MAPI_E_COMPUTED

Description:

Testing:  There have been no reports of this error message during testing.


8004011B

Constant:  MAPI_E_CORRUPT_DATA

Description:

Testing:  There have been no reports of this error message during testing.


8004011C

Error message text:  The set of folders could not be opened. Your profile is not configured. Microsoft Exchange Server Information Store - 2032.

Testing:  We got this error code when we added a second mailbox to our Exchange profile and then tried to access that mailbox without restarting Exchange first.  Once we exited and restarted Exchange, it worked just fine.


8004011D

Error message text:  Varies.  We have gotten the following error messages accompanying this error code:

The attempt to log on to the Microsoft Exchange Server computer has failed. Microsoft Exchange Server Information Store - 2017.

The set of folders could not be opened. Could not logon to store. MAPI 1.0 - 649.

Testing:  We have hit this problem many times.  Every time that we have traced it down it has always pointed to the message store crashing or having been shut down.


80040151

Error message text:  The form you selected could not be displayed. An error occurred registering the form in the OLE registry.

Testing: We hit this when we tried to launch an eform from a PST when we had less than 64KB of disk space left. This is a bug which we plan to fix before final release.


80040154

Constant:  REGDB_E_CLASSNOTREG

Error message text:  Varies.

Testing:  We have hit this error several times:

The most recent time we hit this, we were attempting to use the File:Send feature of 16-bit Excel.  We still have not found the solution, but we suspect it is related to a send note form not being registered in the form registry.  See mapi10 bug 4534.

The second time we were running WMS build 306.7 (post-TR2) and Windows95 build 166.  All we did was open a plain old compose note and we got this error code with the error message text: The message could not be opened.  We have not determined yet what caused this problem, but we suspect it relates to OLE.

The first time we were trying to open an embedded OLE object in a mail message while running the Windows95 Info Center.  The error message text was: The attachment could not be loaded.  In TR2, the 32-bit mail clients (Capone on Daytona and the Windows95 Info Center) do not support OLE objects.  We plan to fix this in TR3.


80040200

Constant:  MAPI_E_END_OF_SESSION

Description:  This error code indicates that the MAPI session, which was started when you logged into MAPI, has ended.

Testing:  There have been no reports of this error message during testing.


80040201

Constant:  MAPI_E_UNKNOWN_ENTRYID

Description:

Testing:  There have been no reports of this error message during testing.


80040202

Constant:  MAPI_E_MISSING_REQUIRED_COLUMN

Description:  This error message indicates that the data structure provided is missing a critical element.

Testing:  There have been no reports of this error message during testing.


80040301

Constant:  MAPI_E_BAD_VALUE

Description:

Testing:  There have been no reports of this error message during testing.


80040302

Constant:  MAPI_E_INVALID_TYPE

Description:

Testing:  There have been no reports of this error message during testing.


80040303

Constant:  MAPI_E_TYPE_NO_SUPPORT

Description:

Testing:  There have been no reports of this error message during testing.


80040304

Constant:  MAPI_E_UNEXPECTED_TYPE

Description:

Testing:  There have been no reports of this error message during testing.


80040305

Constant:  MAPI_E_TOO_BIG

Description:

Testing:  We have not hit this one yet.


80040306

Constant:  MAPI_E_DECLINE_COPY

Description:

Testing: We have not hit this one yet.


80040380

Testing:  We hit this a lot while first ramping up on dogfood.  We have yet to figure out what causes this error and how to fix it.  We suspect it has something to do with the MDB, as it is usually accompanied by the text Microsoft Exchange Message Database - 1006.


80040400

Constant:  MAPI_E_UNABLE_TO_COMPLETE

Description:

Testing:  There have been no reports of this error message during testing.


80040401

Constant: MAPI_E_TIMEOUT

Description:

Testing:  We hit this error code once when testing the Compuserve MAPI service provider.  Apparently the Compuserve host stopped responding at an unexpected time, as the Compuserve provider stopped responding to the system and had to be terminated using Ctrl-Alt-Del.  Since we are not sure what happened on the server to cause this bug (and therefore how to reproduce it), we have not entered it in Raid yet.


80040402

Constant:  MAPI_E_TABLE_EMPTY

Description:

Testing:  There have been no reports of this error message during testing.


80040403

Constant:  MAPI_E_TABLE_TOO_BIG

Description:

Testing:  There have been no reports of this error message during testing.


80040404

Constant:  MAPI_E_UNKNOWN_SORT_ORDER

Description:

Testing:  There have been no reports of this error message during testing.


80040405

Constant:  MAPI_E_INVALID_BOOKMARK

Description:

Testing:  There have been no reports of this error message during testing.


800404B5

Description:  Little is known about this error message.  The 8 just distinguishes this as an error code (as opposed to a warning code).  The first 4 indicates that the problem occurred during a Capone procedure call (or whatever MAPI client was running at the time).  The second 4 indicates that it occurred during manipulation of a table data object.  As for the last two digits, B5, I have not yet found them documented anywhere in the MAPI project.

Testing:  The few times this error has appeared during testing it coincided with a server crash, so that might be the cause.


80040500

Constant:  MAPI_E_WAIT

Description:

Testing:  There have been no reports of this error message during testing.


80040501

Constant:  MAPI_E_CANCEL

Description:

Testing:  There have been no reports of this error message during testing.


80040502

Constant:  MAPI_E_NOT_ME

Description:

Testing:  There have been no reports of this error message during testing.


80040600

Constant:  MAPI_E_CORRUPT_STORE

Description:  I do not think this requires further description.

Testing:  There have been no reports of this error message during testing.


80040601

Constant:  MAPI_E_NOT_IN_QUEUE

Error message text:  The command you specified could not be carried out.  The client operation failed. Microsoft Exchange Server Information Store - 2001.

Testing:  Bug 12985: We hit this when we were trying to resend a non-delivery-reported message.  The problem which caused this error code was fixed in beta2.


80040602

Constant:  MAPI_E_NO_SUPPRESS

Description:

Testing:  There have been no reports of this error message during testing.


80040604

Constant:  MAPI_E_COLLISION

Description:

Testing:  There have been no reports of this error message during testing.


80040605

Constant:  MAPI_E_NOT_INITIALIZED

Description:  Varies.  This error code can be returned by several different functions.

PSS:  We have found two different situations which cause this error code:

1) If you delete or corrupt the services.ini file and then try to edit a service, you will get this error. If a customer is getting this error code, then you might want to examine the services.ini.  The most likely solution would be to remove the corruption (if the fix is obvious) or delete the file and reinstall the mail client.

2) If you are writing a MAPI client application, you might get this error code returned from a MAPILogon call. Check to make sure that the MAPILogon call is preceded by a MAPIInitialize call. Also, check to make sure that you MAPIUninitialize after releasing the MAPISession.

Testing:  We hit this twice:

1)  We tried to edit the Marvel provider or one of the Compuserve providers in the Messaging  Profile applet.  The error message read:  An error has occurred. The messaging services has no configuration interface.  This error message was a very accurate description of the problem; the provider was not designed to be editable by the Messaging Profiles applet.

The only way we found to change the Compuserve configuration settings was to create a profile containing the Compuserve providers and log into mail using that profile.  When the providers loaded for the first time, they sensed that they had not been configured and brought up configuration dialogs.

2)  We once accidentally ran addminet.exe (a utility for adding Internet Mail drivers to the services.ini) on a machine that had an older installation of Windows95.  It hosed the services.ini.  We had to reinstall Windows95 to fix it


80040606

Constant:  MAPI_E_NON_STANDARD

Description:

Testing:  There have been no reports of this error message during testing.


80040607

Constant:  MAPI_E_NO_RECIPIENTS

Description:  This error code indicates that the To, Cc, and Bcc fields of the message are all blank.

Testing:  There have been no reports of this error message during testing.


80040608

Constant:  MAPI_E_SUBMITTED

Description:

Testing:  There have been no reports of this error message during testing.


80040609

Constant:  MAPI_E_HAS_FOLDERS

Description:  This error code is used to indicate when a folder contains sub-folders.

Testing:  There have been no reports of this error message during testing.


8004060A

Constant:  MAPI_E_HAS_MESSAGES

Description:  This error code is used to indicate when a folder contains messages.

Testing:  There have been no reports of this error message during testing.


8004060B

Constant:  MAPI_E_FOLDER_CYCLE

Description:

Testing:  There have been no reports of this error message during testing.


80040700

Constant:  ;MAPI_E_AMBIGUOUS_RECIP

Description  This error code says that one of the names typed in the To, Cc, or Bcc fields cannot be traced to exactly one address.

Testing:  There have been no reports of this error message during testing.


8004270F

Description:  This error code indicates a MAPI provider/EMS server version mismatch.

Testing:  We hit this when we tried to run an old version of a MAPI service provider with a newer version of the EMS server.  The solution was to upgrade the service provider (which is automatically done when you upgrade Capone) to the same version as the server.


80070005

Constant:  MAPI_E_NO_ACCESS

Description:  This is the error code you get when you hit an Access Denied error in NT.

Testing:  We hit this once when we opened a message and then attempted to drag & drop that same message from the message viewer into its own message body.  We are not certain that this was an appropriate error to get in this instance.  Still investigating.


8007000E

Constant:  MAPI_E_NOT_ENOUGH_MEMORY

Description:  About all the information you are going to get out of this one is in the constant name -- out of memory.  It does not indicate what body of code encoutered the resource failure or when.

Testing:  We hit this error a few times:

1.  When loading a mail form.  The form manager was making a call to function CoCreateInstance() and getting this error message.  Development suggested that this error message might result from a missing DLL, but we were able to confirm that all DLLs were in their appropriate places.  We have yet to determine what caused this error and how to avoid it.

2.  Bug 14630: When we tried opening a message which was just under 32KB in size and contained attachments and/or rich text.  Fixed in beta2.

3.  Bug 13117: We got this error code when we tried to add a column to the view of a large folder (1500 messages).  This bug will be fixed for the final release.will be fixed for the final release.

4.  Bug 12934: Schedule+ returns this error code when it cannot access the Exchange server over the network.


80070057

Constant:  MAPI_E_INVALID_PARAMETER

Description:  This error code is used as a last resort -- when the developer has no way of knowing what context or facility to specify.  All it tells us is that some function was passed a parameter that did not meet the specifications of that function.

Testing:  Bug 12988: We hit error code in testing when trying to resend a message from a non-delivery report. The problem which caused the error code was fixed in beta2.


81002713

Testing:  We hit this error when trying to select 3000 messages in either the MDB or the PST.  We are not sure yet what caused this problem or what the solution is, but we suspect it is a bug in MAPI.  Stay tuned...


81002EE1

Testing:  This error message surfaced when we tried to access the Inbox Manager of a corrupted mailbox.  The only solution was to forward all the messages to a new mailbox and delete the old one.  The bug that caused this particular mailbox corruption was traced down and fixed before TR2 shipped.


81002EF9

Testing:  This error message was discovered by our Internal Technology Group (ITG).  While we have not yet figured out what the specific cause was or how to fix it, but we suspect it is related to a corrupted database (MDB).  It appears to be similar to 81002EE1 in terms of its severity, context, and facility fields, so it might be closely related.


810043FA

Error message text:  Cannot start the Address Book.

Testing:  We have hit this error from several different angles:

1.  We were running Netware v3.11 monolithic on Windows v3.1 without the netware patch (\\smadamot\novell\drivers\winup9.exe).  The patch updates the nwipxspx.dll file.  We have not yet confirmed that adding this patch fixes the problem.

2.  We were running Windows For Workgroups v3.10 with the Microsoft IPX/SPX compatible protocol.  Program Management is considering dropping WFW 3.10 from the supported configuration list.

3.  This error code also comes up when running the US version of Capone on any localized version of WFW 3.11 or Win 3.1.  We have not yet determined what causes this problem or how to resolve it.

4.  We hit this once when we ran Capone setup on an NTAS machine which already had Capone installed, told Setup to Remove All, and then tried to install Capone again without rebooting.  Apparently there was DLL of some sort still loaded in memory (perhaps the MAPI spooler).  Once we rebooted the machine we had no trouble installing Capone.

5.  The very first time we hit this error, it coincided with the DSA crashing on the server.  Once the server and client were restarted, it ran just fine.


8100A710

Testing:  We ran into this once when starting 32-bit Capone on Exchange version 306.7 (post-TR2).  We have not yet found a solution or work-around.


8204010F

Testing:  We found several different actions that triggered this error code:

1.  Trying to log into EMS with a profile that did not have a default store indicated.   The solution was to open the Messaging Profiles applet, select the profile, press Edit, Profile Settings, Delivery, and select a service provider as the default provider from the pull-down list.

2.  Trying to start the mail client when the .DLL file of the message store service provider was not on the search path.  The solution in this case was to reset the search path so it included the directory containing the message store service provider.

3.  Rapid-firing the Remove button in the Mail and Fax control panel applet. This bug was fixed post-beta2.


Dissecting a MAPI Error Code

MAPI error codes are hexidecimal representations of 32-bit integers.  What each of these bits represent depends on the platform you are running.

On 16-bit operating systems like Windows 3.1 and Windows for Workgroups 3.x, these 32 bits are split up into four fields: Severity, Context, Facility, and Code.  The table below indicates which bits are associated with which fields.

Field:	Bit Numbers:

Severity	31 (leftmost)

Context	20-30

Facility	16-19

Code	0-15

On 32-bit operating systems like Windows NT 3.x and Windows 4.0, these 32 bits are split up into seven fields: Severity, Recovery, a field which the source code describes as The NT C Field, Status, MessageID, Facility, and Code.  The table below indicates which bits are associated with which fields.

Field:	Bit Numbers:

Severity	31 (leftmost)

Recovery	30

NT C	29

Status	28

MessageID	27

Facility	16-26

Code	0-15


Severity Field

The 31st (leftmost) bit of the MAPI error code is the severity field.  Being a single bit, it has only two values.  1 indicates an error condition has occurred.  0 indicates no error condition has occurred.

The 0 value might appear if the error message is meant to be a warning of a minor or non-fatal problem.


Recovery Field

The 30th bit of the MAPI error code is the recovery field.  The MAPI source code does not explain the significance of this field other than the fact that it is reserved for use by the operating system.


C Field

The 29th bit of the MAPI error code is the C field.  The MAPI source code does not explain the significance or meaning of this field other than the fact that it is reserved for use by the operating system.


Status Field

The 28th bit of the MAPI error code is the status field.  The MAPI source code does not explain the significance of this field other than the fact that it is reserved for use by the operating system.


MessageID Field

The 27th bit of the MAPI error code is the MessageID field.  The MAPI source code describes this field as reserved for indicating HRESULT values that are not status values but are instead message ids for display strings.


Context Field

The 20th through 30th bits of the MAPI error code comprise its context field.  The purpose of this field is to help identify which body of code experienced the error.

I am still looking for a source file which defines the various contexts.


Facility Field

These bits of the MAPI error code comprise its facility field.  This field helps to identify which body of code was running when the error occurred.  There are seven known values for the facility field:

xxx0xxxx

xxx1xxxx

xxx2xxxx

xxx3xxxx

xxx4xxxx

xxx7xxxx

xxx8xxxx


xxx0xxxx

Constant:  FACILITY_NULL

Description:  Error codes matching this pattern indicate no specific facility.

Testing:  We have seen several different error codes with null facilities.  See 80000002, 80000008, 81002EE1, 810043FA.  A null facility field may not help determine where the problem is, but it does help determine where the problem is not.  For example, if the problem were in Capone, the interface facility would be 4 (see xxx4xxxx).


xxx1xxxx

Constant:  FACILITY_RPC

Description:  Error codes matching this pattern indicate that the error occurred during a remote procedure call.

Testing:  We have not seen any error codes with this facility field value.


xxx2xxxx

Constant:  FACILITY_DISPATCH

Description:  Error codes matching this pattern indicate a late binding dispatch errors.  I realize that does not help much -- I am just quoting the source code.  As I get more detailed information on this, I will put it here.

Testing:  We have not seen any error codes with this facility field value.


xxx3xxxx

Constant:  FACILITY_STORAGE

Description:

Testing:  We have not seen any error codes with this facility field value.


xxx4xxxx

Constant:  FACILITY_ITF

Description:   This facility field value indicates that the error occurred in the client code.  In TR2 this facility also stamped on all transport, address book ,and message store error codes.  This is a bug -- transport error codes should be stamped with FACILITY_DISPATCH (see xxx2xxxx) and message store errors should be stamped with FACILITY_STORAGE (see xxx3xxxx).  The address book did not have its own facility value in TR2.

Testing:  We hit many different error messages containing this facility field.  See 02040380, 80040010, 80040100, 80040110, 80040111, 80040115, 80040154, 800404B5, 8004270F, 8204010F


xxx7xxxx

Constant:  FACILITY_WIN32

Description:   This facility field value is inherited from the OLE error code file OLEError.H.  The only common thread between the error codes that contain this facility is that they do not attempt to indicate which body of code was running at the time they occurred.  No, this is not very helpful, but that is all the information we have.

Testing:  We hit an error code in this facility once.  See 80070005, 8007000E.


xxx8xxxx

Constant:  FACILITY_WINDOWS

Description:   This facility field value is inherited from the OLE error codes.  The only common thread between the error codes that contain this facility is that they do not attempt to indicate which body of code was running at the time they occurred.  No, this is not very helpful, but that is all the information we have currently.

Testing:  We have not hit any error messages containing this facility field.  It is my sincere hope that we keep it that way.


Code Field

The 0th through 15th bits of a MAPI error code comprise its code field.  This field attempts to indicate which subroutine was running when the error occurred.  For example, error code [810043FA] has a code field (in hex) 43FA, which is 0100001111111010 in binary.

The following list of known code fields was pulled from the source file C:\MAPI\H\MAPICODE.H.  I have included In many cases the error message descriptions are as cryptic as the message number, but some of them might prove helpful.

Procedure:  Click on a Code Field to view its description.

xxxx01xx

xxxx02xx

xxxx03xx

xxxx04xx

xxxx05xx

xxxx06xx

xxxx07xx

xxxx08xx

xxxx09xx


xxxx01xx

Error codes matching this pattern are General MAPI Error Codes.  This means that they are used by more than one MAPI object.


xxxx02xx

Error codes matching this pattern are generated by the MAPI base functions or by the status object.


xxxx03xx

Error codes matching this pattern are property-specific.


xxxx04xx

Error codes matching this pattern are table-specific errors and warnings.  A MAPI Table is a type of data structure.


xxxx05xx

Error codes matching this pattern are transport-specific errors and warnings.


xxxx06xx

Error codes matching this pattern are MessageStore-, Message-, and Folder-specific errors and warnings.


xxxx07xx

Error codes matching this pattern are address book specific errors and warnings.


xxxx08xx

Error codes matching this pattern are reserved by something called NDB.


xxxx09xx

Error codes matching this pattern are reserved by something called LTP.