RPC Client Access service crashes and Event 4999 is logged in Exchange Server 2013

When certain email messages are accessed by using Microsoft Outlook in online mode, the RPC Client Access service crashes or restarts unexpectedly. When this occurs, the following errors are logged in the event log. 

Note Sometimes, the service does not crash even though an entry for the event is still logged.

Log Name: Application
Source: MSExchange Common
Date: [Time of Occurrence]
Event ID: 4999
Task Category: General
Level: Error
Keywords: Classic
User: N/A
Watson report about to be sent for process id: 1852, with parameters: E12IIS, c-RTL-AMD64, 15.00.1076.009, M.E.RpcClientAccess.Service, unknown, M.E.D.T.I.F.F.TextStore.AddText, System.IndexOutOfRangeException, 5453, unknown.
ErrorReportingEnabled: False

The following is logged in the RCA logs that are saved to the following location:

C:\Program Files\Microsoft\Exchange Server\V15\Logging\RPC Client Access

2015-04-23T19:05:35.961Z,3,603,/o=<id>/ou=exchange administrative group(fydibohf23spdlt)/cn=recipients/cn=5dd9b1444df54688b0d2367fbc5e47aa-crashmbx,,OUTLOOK.EXE,15.0.4711.1000,Classic,,,,ncacn_http,Client=MSExchangeRPC,,,,fault,00:00:00.2970000,,"Watson: [IndexOutOfRangeException] Index was outside the bounds of the array. at M.E.D.TextConverters.Internal.Format.FormatStore.TextStore.AddText(TextRunType runType, Char[] textBuffer, Int32 offset, Int32 count) at M.E.D.TextConverters.Internal.Format.FormatStore.AddMarkupText(Char[] textBuffer, Int32 offset, Int32 count) at M.E.D.TextConverters.Internal.Html.HtmlFormatConverterWithEncapsulation.OutputEncapsulatedMarkup() at M.E.D.TextConverters.Internal.Html.HtmlFormatConverterWithEncapsulation.Process(HtmlTokenId tokenId) at M.E.D.TextConverters.ConverterStream.Read(Byte[] buffer, Int32 offset, Int32 count) at M.E.D.TextConverters.Internal.RtfCompressed.RtfCompressCommon.ReadMoreData() at M.E.D.TextConverters.Internal.RtfCompressed.RtfCompressConverter.Run() at M.E.D.TextConverters.ConverterStream.Read(Byte[] buffer, Int32 offset, Int32 count) at M.E.D.S.BodyReadStream.<>c__DisplayClassb.<Read>b__a() at M.E.D.S.ConvertUtils.<>c__DisplayClass1`1.&lt;CallCtsWithReturnValue>b__0() at M.E.D.S.ConvertUtils.CallCts(Trace tracer, String methodName, LocalizedString exceptionString, CtsCall ctsCall) at M.E.D.S.ConvertUtils.CallCtsWithReturnValue[T](Trace tracer, String methodName, LocalizedString exceptionString, CtsCallWithReturnValue`1 ctsCall) at M.E.D.S.BodyReadStream.Read(Byte[] buffer, Int32 offset, Int32 count) at M.E.D.S.Util.StreamHandler.CopyStreamData(Stream readStream, Stream writeStream, Nullable`1 numBytes, Int32 t",,,.in,
The issue is caused by a logic error that occurs in the TextConverter class when TextConverter performs a buffer copy operation.
To fix this issue, install Cumulative Update 14 for Exchange Server 2013 or a later cumulative update for Exchange Server 2013.
To work around this problem, identify the mailbox that caused the service to stop by using the RCA logs. Then, we recommend that you have the mailbox user change their Outlook setting from online mode to cached mode. 

Also, make sure that the user does not copy or move specific email messages to a .pst or local folder, either directly or by using an Outlook rule. To determine which message that is causing the problem, copy or move every message to the .pst file one at a time. The message that you cannot move is the one that is causing the problem. This problem causes a loss of connectivity loss or causes the RPC Client Access service to crash.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

Article ID: 3061079 - Last Review: 09/20/2016 15:42:00 - Revision: 5.0

Microsoft Exchange Server 2013 Standard, Microsoft Exchange Server 2013 Enterprise

  • kbqfe kbsurveynew KB3061079