Avatar of PeterNairn
PeterNairn
 asked on

Exchange 2016 Mailboxes in Quarantine

Exchange 2016, Mailboxes keep going in to quarantine and following message in event viewer.

Log Name:      Application
Source:        MSExchangeIS
Date:          14/10/2021 12:07:49
Event ID:      2006
Task Category: Physical Access
Level:         Error
Keywords:      Classic
User:          N/A
Computer:     servername.domain
Description:
Microsoft Exchange Information Store worker process (24968) has encountered an unexpected database error (Microsoft.Isam.Esent.Interop.EsentKeyDuplicateException: Illegal duplicate key
   at Microsoft.Isam.Esent.Interop.Server2003.Server2003Api.JetUpdate2(JET_SESID sesid, JET_TABLEID tableid, Byte[] bookmark, Int32 bookmarkSize, Int32& actualBookmarkSize, UpdateGrbit grbit)
   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.Insert(IList`1 columns, IList`1 values, Column identityColumnToFetch, Boolean unversioned, Boolean ignoreDuplicateKey, Object& identityValue)) for database 'Mailbox Database 0854473321' with a call stack of
   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.Insert(IList`1 columns, IList`1 values, Column identityColumnToFetch, Boolean unversioned, Boolean ignoreDuplicateKey, Object& identityValue)
   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetInsertOperator.ExecuteScalar()
   at Microsoft.Exchange.Server.Storage.PhysicalAccess.DataRow.Insert(IConnectionProvider connectionProvider, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.StoreCommonServices.ObjectPropertyBag.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Item.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Message.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Item.SaveChanges(Context context)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Message.SaveChanges(Context context)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.TopMessage.SaveChanges(Context context, SaveMessageChangesFlags flags)
   at Microsoft.Exchange.Protocols.MAPI.MapiMessage.SaveChangesInternal(MapiContext context, MapiSaveMessageChangesFlags saveFlags, ExchangeId& newMid)
   at Microsoft.Exchange.Protocols.MAPI.MapiMessage.SubmitMessage(MapiContext context, RopFlags ropFlags, Object sentRepresentingEntryId, AddressInfo addressInfoForAuthorization, SubmitMessageRightsCheckFlags submitMessageRightsCheckFlags)
   at Microsoft.Exchange.Protocols.MAPI.MapiLogon.InternalGenerateQuotaReport(MapiContext context, MapiLogon mapiLogon, Folder folder, QuotaType quotaType, QuotaInfo quotaInfo, IList`1 recipients, Int64 containerSize)
   at Microsoft.Exchange.Protocols.MAPI.MapiMailboxShape.PerformLogonQuotaCheck(MapiContext context, MapiLogon mapiLogon, QuotaType minScan, QuotaType maxScan)
   at Microsoft.Exchange.Protocols.MAPI.MapiMailboxShape.PerformLogonQuotaCheck(MapiContext context, MapiLogon mapiLogon)
   at Microsoft.Exchange.Protocols.MAPI.MapiLogon.PerformLogonQuotaCheck(MapiContext context)
   at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandler.Logon(MapiContext context, LogonFlags logonFlags, OpenFlags openFlags, StoreState storeState, LogonExtendedRequestFlags extendedFlags, Nullable`1 mailboxId, Nullable`1 localeInfo, String applicationId, AuthenticationContext authenticationContext, Byte[] tenantHintBlob, LogonResultFactory resultFactory)
   at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandlerBase.Logon(LogonFlags logonFlags, OpenFlags openFlags, StoreState storeState, LogonExtendedRequestFlags extendedFlags, Nullable`1 mailboxId, Nullable`1 localeInfo, String applicationId, AuthenticationContext authenticationContext, Byte[] tenantHint, LogonResultFactory resultFactory)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopLogon.Execute(IConnectionInformation connection, IRopDriver ropDriver, ServerObjectHandleTable handleTable, ArraySegment`1 outputBuffer)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteRops(List`1 inputArraySegmentList, ServerObjectHandleTable serverObjectHandleTable, ArraySegment`1 outputBuffer, Int32 outputIndex, Int32 maxOutputSize, Boolean isOutputBufferMaxSize, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]& fakeOut)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteOrBackoff(IList`1 inputBufferArray, ArraySegment`1 outputBuffer, Int32& outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]& fakeOut)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.<>c__DisplayClass29_1.<DoRpc>b__0(MapiContext operationContext, MapiSession& session, Boolean& deregisterSession, AuxiliaryData auxiliaryData)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.Execute(IExecutionDiagnostics executionDiagnostics, MapiContext outerContext, String functionName, Boolean isRpc, IntPtr& contextHandle, Boolean tryLockSession, String userDn, IList`1 dataIn, Int32 sizeInMegabytes, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, ExecuteDelegate executeDelegate)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.DoRpc(IExecutionDiagnostics executionDiagnostics, IntPtr& contextHandle, IList`1 ropInArraySegments, ArraySegment`1 ropOut, Int32& sizeRopOut, Boolean internalAccessPrivileges, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32& sizeAuxOut, Boolean fakeRequest, Byte[]& fakeOut)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcDoRpc(MapiExecutionDiagnostics executionDiagnostics, IntPtr& sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc_Unwrapped(MapiExecutionDiagnostics executionDiagnostics, IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.<>c__DisplayClass48_0.<EcPoolSessionDoRpc>b__0()
   at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch[T](Action tryDelegate, GenericFilterDelegate filterDelegate, GenericCatchDelegate catchDelegate, T state)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc(IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at EcPoolSessionDoRpcRpc.EcDispatchCall(EcPoolSessionDoRpcRpc* , SafeRpcAsyncStateHandle pAsyncState, IPoolRpcServer server)
   at PoolRpcServer_Wrapper.InternalExecute(PoolRpcServer_Wrapper* , SafeRpcAsyncStateHandle pAsyncState)
   at Microsoft.Exchange.Rpc.ManagedExceptionAsyncCrashWrapper.Execute<class Microsoft::Exchange::Rpc::PoolRpc::SafeEcPoolSessionDoRpcRpcAsyncStateHandle>(ManagedExceptionAsyncCrashWrapper* , _RPC_ASYNC_STATE* pAsyncState)
   at EcPoolSessionDoRpc_Managed(_RPC_ASYNC_STATE* pAsyncState, Void* cpxh, UInt32 ulSessionHandle, UInt32* pulFlags, UInt32 cbIn, Byte* rgbIn, UInt32* pcbOut, Byte** ppbOut, UInt32 cbAuxIn, Byte* rgbAuxIn, UInt32* pcbAuxOut, Byte** ppbAuxOut)
.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="MSExchangeIS" />
    <EventID Qualifiers="49156">2006</EventID>
    <Level>2</Level>
    <Task>2</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2021-10-14T11:07:49.032640700Z" />
    <EventRecordID>10167078</EventRecordID>
    <Channel>Application</Channel>
    <Computer>WIN-U1AM4JVFEJL.ASGCommercial.co.uk</Computer>
    <Security />
  </System>
  <EventData>
    <Data>Microsoft.Isam.Esent.Interop.EsentKeyDuplicateException: Illegal duplicate key
   at Microsoft.Isam.Esent.Interop.Server2003.Server2003Api.JetUpdate2(JET_SESID sesid, JET_TABLEID tableid, Byte[] bookmark, Int32 bookmarkSize, Int32&amp; actualBookmarkSize, UpdateGrbit grbit)
   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.Insert(IList`1 columns, IList`1 values, Column identityColumnToFetch, Boolean unversioned, Boolean ignoreDuplicateKey, Object&amp; identityValue)</Data>
    <Data>   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetTableOperator.Insert(IList`1 columns, IList`1 values, Column identityColumnToFetch, Boolean unversioned, Boolean ignoreDuplicateKey, Object&amp; identityValue)
   at Microsoft.Exchange.Server.Storage.PhysicalAccessJet.JetInsertOperator.ExecuteScalar()
   at Microsoft.Exchange.Server.Storage.PhysicalAccess.DataRow.Insert(IConnectionProvider connectionProvider, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.StoreCommonServices.ObjectPropertyBag.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Item.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Message.Flush(Context context, Boolean flushLargeDirtyStreams)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Item.SaveChanges(Context context)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.Message.SaveChanges(Context context)
   at Microsoft.Exchange.Server.Storage.LogicalDataModel.TopMessage.SaveChanges(Context context, SaveMessageChangesFlags flags)
   at Microsoft.Exchange.Protocols.MAPI.MapiMessage.SaveChangesInternal(MapiContext context, MapiSaveMessageChangesFlags saveFlags, ExchangeId&amp; newMid)
   at Microsoft.Exchange.Protocols.MAPI.MapiMessage.SubmitMessage(MapiContext context, RopFlags ropFlags, Object sentRepresentingEntryId, AddressInfo addressInfoForAuthorization, SubmitMessageRightsCheckFlags submitMessageRightsCheckFlags)
   at Microsoft.Exchange.Protocols.MAPI.MapiLogon.InternalGenerateQuotaReport(MapiContext context, MapiLogon mapiLogon, Folder folder, QuotaType quotaType, QuotaInfo quotaInfo, IList`1 recipients, Int64 containerSize)
   at Microsoft.Exchange.Protocols.MAPI.MapiMailboxShape.PerformLogonQuotaCheck(MapiContext context, MapiLogon mapiLogon, QuotaType minScan, QuotaType maxScan)
   at Microsoft.Exchange.Protocols.MAPI.MapiMailboxShape.PerformLogonQuotaCheck(MapiContext context, MapiLogon mapiLogon)
   at Microsoft.Exchange.Protocols.MAPI.MapiLogon.PerformLogonQuotaCheck(MapiContext context)
   at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandler.Logon(MapiContext context, LogonFlags logonFlags, OpenFlags openFlags, StoreState storeState, LogonExtendedRequestFlags extendedFlags, Nullable`1 mailboxId, Nullable`1 localeInfo, String applicationId, AuthenticationContext authenticationContext, Byte[] tenantHintBlob, LogonResultFactory resultFactory)
   at Microsoft.Exchange.Server.Storage.MapiDisp.RopHandlerBase.Logon(LogonFlags logonFlags, OpenFlags openFlags, StoreState storeState, LogonExtendedRequestFlags extendedFlags, Nullable`1 mailboxId, Nullable`1 localeInfo, String applicationId, AuthenticationContext authenticationContext, Byte[] tenantHint, LogonResultFactory resultFactory)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopLogon.Execute(IConnectionInformation connection, IRopDriver ropDriver, ServerObjectHandleTable handleTable, ArraySegment`1 outputBuffer)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteRops(List`1 inputArraySegmentList, ServerObjectHandleTable serverObjectHandleTable, ArraySegment`1 outputBuffer, Int32 outputIndex, Int32 maxOutputSize, Boolean isOutputBufferMaxSize, Int32&amp; outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]&amp; fakeOut)
   at Microsoft.Exchange.RpcClientAccess.Parser.RopDriver.ExecuteOrBackoff(IList`1 inputBufferArray, ArraySegment`1 outputBuffer, Int32&amp; outputSize, AuxiliaryData auxiliaryData, Boolean isFake, Byte[]&amp; fakeOut)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.&lt;&gt;c__DisplayClass29_1.&lt;DoRpc&gt;b__0(MapiContext operationContext, MapiSession&amp; session, Boolean&amp; deregisterSession, AuxiliaryData auxiliaryData)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.Execute(IExecutionDiagnostics executionDiagnostics, MapiContext outerContext, String functionName, Boolean isRpc, IntPtr&amp; contextHandle, Boolean tryLockSession, String userDn, IList`1 dataIn, Int32 sizeInMegabytes, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32&amp; sizeAuxOut, ExecuteDelegate executeDelegate)
   at Microsoft.Exchange.Server.Storage.MapiDisp.MapiRpc.DoRpc(IExecutionDiagnostics executionDiagnostics, IntPtr&amp; contextHandle, IList`1 ropInArraySegments, ArraySegment`1 ropOut, Int32&amp; sizeRopOut, Boolean internalAccessPrivileges, ArraySegment`1 auxIn, ArraySegment`1 auxOut, Int32&amp; sizeAuxOut, Boolean fakeRequest, Byte[]&amp; fakeOut)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcDoRpc(MapiExecutionDiagnostics executionDiagnostics, IntPtr&amp; sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc_Unwrapped(MapiExecutionDiagnostics executionDiagnostics, IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.&lt;&gt;c__DisplayClass48_0.&lt;EcPoolSessionDoRpc&gt;b__0()
   at Microsoft.Exchange.Common.IL.ILUtil.DoTryFilterCatch[T](Action tryDelegate, GenericFilterDelegate filterDelegate, GenericCatchDelegate catchDelegate, T state)
   at Microsoft.Exchange.Server.Storage.MapiDisp.PoolRpcServer.EcPoolSessionDoRpc(IntPtr contextHandle, UInt32 sessionHandle, UInt32 flags, UInt32 maximumResponseSize, ArraySegment`1 request, ArraySegment`1 auxiliaryIn, IPoolSessionDoRpcCompletion completion)
   at EcPoolSessionDoRpcRpc.EcDispatchCall(EcPoolSessionDoRpcRpc* , SafeRpcAsyncStateHandle pAsyncState, IPoolRpcServer server)
   at PoolRpcServer_Wrapper.InternalExecute(PoolRpcServer_Wrapper* , SafeRpcAsyncStateHandle pAsyncState)
   at Microsoft.Exchange.Rpc.ManagedExceptionAsyncCrashWrapper.Execute&lt;class Microsoft::Exchange::Rpc::PoolRpc::SafeEcPoolSessionDoRpcRpcAsyncStateHandle&gt;(ManagedExceptionAsyncCrashWrapper* , _RPC_ASYNC_STATE* pAsyncState)
   at EcPoolSessionDoRpc_Managed(_RPC_ASYNC_STATE* pAsyncState, Void* cpxh, UInt32 ulSessionHandle, UInt32* pulFlags, UInt32 cbIn, Byte* rgbIn, UInt32* pcbOut, Byte** ppbOut, UInt32 cbAuxIn, Byte* rgbAuxIn, UInt32* pcbAuxOut, Byte** ppbAuxOut)
</Data>
    <Data>24968</Data>
    <Data>Mailbox Database 0854473321</Data>
    <Binary>5B444941475F4354585D000006010000FF110000000000000002F8000000B0B900100F01048010A100100F01048030EB00100F010480109100100F01048030E700100F01048010D70010312E323110A7001031343A57FFDB001031414D340FBA00104A4C3A377A7450600000000037656466663331312D323366662D343537652D623232372D63663333663031333065636100346164E07410100200000084747020ED7DE4910000000031343A578874702000000080000000004A4C3A373CB34010D9040000B8744010D904000080A180304EA3747F2A48D14AB411BD2D2FFE0F800000000080891010886100003CDC4010BBF9FFFF80A180304EA3747F2A48D14AB411BD2D2FFE0F80000000008089101088610000</Binary>
  </EventData>
</Event>

Exchange

Avatar of undefined
Last Comment
Amit

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
M A

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
PeterNairn

ASKER
PeterNairn

ASKER
It's been sitting at the above for 10 minutes?

Amit

Any hardware issue? Check system logs for disk errors.
This is the best money I have ever spent. I cannot not tell you how many times these folks have saved my bacon. I learn so much from the contributors.
rwheeler23