Search code examples
c#.netoutlookmapicomexception

System.Runtime.InteropServices.COMException (0x800706BE) when getting contact.LastName


Some of our users are getting this exception sometimes (not for every contact):

System.Runtime.InteropServices.COMException (0x800706BE): 
   The remote procedure call failed. (Exception from HRESULT: 0x800706BE)
   at Microsoft.Office.Interop.Outlook._ContactItem.get_LastName()

This happens when we're trying to get the last name of a contact (of the ContactItem type).

Does anybody know what the problem is?

Any help would be appreciated. Thanks!


Solution

  • It is a Windows error, facility code 7. The last word gives the Windows error, 0x6be == 1726:

    // MessageId: RPC_S_CALL_FAILED
    //
    // MessageText:
    //
    // The remote procedure call failed.
    //
    #define RPC_S_CALL_FAILED                1726L
    

    Interop with Office programs like Outlook happens through out-of-process COM. RPC is the low-level Remote Procedure Call mechanism. There are several reasons for such a remote call to fail. Both the error code and the error name google well.

    The simplest explanation is just that Outlook fell over. That happens. The advantage of in-process interop is that when the host program crashes then it will take out your code as well. Not in an out-of-process scenario, you just get a hard to diagnose error. Ask your customer's IT staff to use their typical Office troubleshooting strategies.