Exchange now uses a new search mechanism called BigFunnel to make “searching better than ever!” – i would disagree
Right – so this has been covered by a lot of blogs – so straight up. This blog doesn’t have the magic fix. Sorry.
What it does have is the errors from behind the scenes that I have seen. Looking around I couldn’t find them anywhere so I wanted to post what we were seeing.
I also want to point people in the right direction by linking these errors back to a more helpful resource that may help long term
From looking over the logs on our servers and through testing there are 5 distinct errors that turn up while trying to do a reindex that I believe are related to BigFunnel. They are below .
I am further chasing info over on the MS Community which can be found here
Update Mid-2022
Turns out that Microsoft have finally “Fixed” this with CU12
And by fixed i mean they fixed the command that allows you to run a repair
You can read the Microsoft post here. Whilst it mentions that it is to do with an upgrade, the reality is that it’s not and this fix works equally as well for run of the mill issues. We have had these settings in place for near on 2 months without issue.
2022-02-07T03:29:27.634Z,Failures,1,BigFunnelRetryFeederTimeBasedAssistant_34986803,,"Retry Failure for mailbox <redacted mailbox UUID> with error : DoRetryItem failed: Microsoft.Exchange.Data.Storage.ConversionFailedException: Content conversion: Body conversion failed. ---> Microsoft.Exchange.Data.TextConverters.TextConvertersException: data truncated\r\n at Microsoft.Exchange.Data.TextConverters.Internal.RtfCompressed.RtfDecompressConverter.Run()\r\n at Microsoft.Exchange.Data.TextConverters.ConverterStream.Read(Byte[] buffer, Int32 offset, Int32 count)\r\n at Microsoft.Exchange.Data.TextConverters.RtfPreviewStream..ctor(Stream inputRtfStream, Int32 inputBufferSize)\r\n at Microsoft.Exchange.Data.Storage.Body.<ChooseBestBody>b__120_0()\r\n at Microsoft.Exchange.Data.Storage.ConvertUtils.CallCts(Trace tracer, String methodName, LocalizedString exceptionString, CtsCall ctsCall)\r\n --- End of inner exception stack trace ---\r\n at Microsoft.Exchange.Data.Storage.ConvertUtils.CallCts(Trace tracer, String methodName, LocalizedString exceptionString, CtsCall ctsCall)\r\n at Microsoft.Exchange.Data.Storage.Body.ChooseBestBody()\r\n at Microsoft.Exchange.Data.Storage.Body.get_Size()\r\n at Microsoft.Exchange.Data.Storage.CalendarItemBase.CreateCacheForChangeHighlight()\r\n at Microsoft.Exchange.Data.Storage.ItemCreateInfo.CalendarItemCreator(ICoreItem coreItem)\r\n at Microsoft.Exchange.Data.Storage.ItemCreateInfo.Creator(ICoreItem coreItem, Boolean isCoreItemInitialized)\r\n at Microsoft.Exchange.Data.Storage.ItemBuilder.ItemBind[T](IStoreSession session, StoreId storeId, Schema expectedSchema, MapiMessageCreator mapiMessageCreator, ItemBindOption itemBindOption, ICollection`1 propertiesToLoad, ItemCreateInfo itemCreateInfo)\r\n at Microsoft.Exchange.Data.Storage.ItemRepository.Bind(StoreId storeId, ItemBindOption itemBindOption, ICollection`1 propsToReturn, Nullable`1 expectedStoreObjectType)\r\n at Microsoft.Exchange.Data.Storage.Item.Bind(IStoreSession session, StoreId storeId, ItemBindOption itemBindOption, ICollection`1 propsToReturn)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.GetPreparedItem(IRetryContext retryContext)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.<>c__DisplayClass7_0.<Retry>b__0()\r\n at Microsoft.Exchange.Data.Storage.MailboxSession.BypassAuditsFolderAccessChecking(Action action)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.Retry(IRetryContext retryContext)\r\n at Microsoft.Exchange.MailboxAssistants.Assistants.BigFunnelRetryFeederTimeBasedAssistant.BigFunnelRetryFeederTimeBasedAssistant.DoRetryItem(BigFunnelRetryFeederTaskContext context)",
2022-02-07T03:47:09.939Z,Failures,1,BigFunnelRetryFeederTimeBasedAssistant_52565294,,"Retry Failure for mailbox <redacted mailbox UUID> with error : RetriableItem.Retry for Item with StoreId: <redacted mailbox store ID>, BigFunnelCorrelationId: <redacted UUID>, Item Class: failed with Exception: Microsoft.Exchange.Data.Storage.ConversionFailedException: Content conversion: Body conversion failed. ---> Microsoft.Exchange.Data.TextConverters.TextConvertersException: data truncated\r\n at Microsoft.Exchange.Data.TextConverters.Internal.RtfCompressed.RtfDecompressConverter.Run()\r\n at Microsoft.Exchange.Data.TextConverters.ConverterStream.Read(Byte[] buffer, Int32 offset, Int32 count)\r\n at Microsoft.Exchange.Data.TextConverters.RtfPreviewStream..ctor(Stream inputRtfStream, Int32 inputBufferSize)\r\n at Microsoft.Exchange.Data.Storage.Body.<ChooseBestBody>b__120_0()\r\n at Microsoft.Exchange.Data.Storage.ConvertUtils.CallCts(Trace tracer, String methodName, LocalizedString exceptionString, CtsCall ctsCall)\r\n --- End of inner exception stack trace ---\r\n at Microsoft.Exchange.Data.Storage.ConvertUtils.CallCts(Trace tracer, String methodName, LocalizedString exceptionString, CtsCall ctsCall)\r\n at Microsoft.Exchange.Data.Storage.Body.ChooseBestBody()\r\n at Microsoft.Exchange.Data.Storage.Body.get_Size()\r\n at Microsoft.Exchange.Data.Storage.CalendarItemBase.CreateCacheForChangeHighlight()\r\n at Microsoft.Exchange.Data.Storage.ItemCreateInfo.CalendarItemCreator(ICoreItem coreItem)\r\n at Microsoft.Exchange.Data.Storage.ItemCreateInfo.Creator(ICoreItem coreItem, Boolean isCoreItemInitialized)\r\n at Microsoft.Exchange.Data.Storage.ItemBuilder.ItemBind[T](IStoreSession session, StoreId storeId, Schema expectedSchema, MapiMessageCreator mapiMessageCreator, ItemBindOption itemBindOption, ICollection`1 propertiesToLoad, ItemCreateInfo itemCreateInfo)\r\n at Microsoft.Exchange.Data.Storage.ItemRepository.Bind(StoreId storeId, ItemBindOption itemBindOption, ICollection`1 propsToReturn, Nullable`1 expectedStoreObjectType)\r\n at Microsoft.Exchange.Data.Storage.Item.Bind(IStoreSession session, StoreId storeId, ItemBindOption itemBindOption, ICollection`1 propsToReturn)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.GetPreparedItem(IRetryContext retryContext)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.<>c__DisplayClass7_0.<Retry>b__0()\r\n at Microsoft.Exchange.Data.Storage.MailboxSession.BypassAuditsFolderAccessChecking(Action action)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.Retry(IRetryContext retryContext)",
2022-02-07T02:59:14.520Z,Failures,1,BigFunnelRetryFeederTimeBasedAssistant_58409158,,"Retry Failure for mailbox <redacted mailbox UUID> with error : DoRetryItem failed: Microsoft.Exchange.Data.Storage.AccessDeniedException: Cannot get attachment table. ---> Microsoft.Mapi.MapiExceptionNoAccess: MapiExceptionNoAccess: Unable to query table rows. (hr=0x80070005, ec=-2147024891)\nDiagnostic context:\n Lid: 55847 EMSMDBPOOL.EcPoolSessionDoRpc called [length=3855]\n Lid: 43559 EMSMDBPOOL.EcPoolSessionDoRpc returned [ec=0x0][length=1065][latency=14]\n Lid: 52176 ClientVersion: 15.2.986.5\n Lid: 50032 ServerVersion: 15.2.986.6005\n Lid: 35180 \n Lid: 23226 --- ROP Parse Start ---\n Lid: 27962 ROP: ropDeletePropsNoReplicate [122]\n Lid: 17082 ROP Error: 0x80070005\n Lid: 30561 \n Lid: 21921 StoreEc: 0x80070005\n Lid: 27962 ROP: ropExtendedError [250]\n Lid: 1494 ---- Remote Context Beg ----\n Lid: 52072 dwParam: 0x2\n Lid: 60775 StoreEc: 0x80070005\n Lid: 40748 qdwParam: 0xB01000000000001 \n Lid: 57132 qdwParam: 0x7365287100000002\n Lid: 63016 dwParam: 0x7A\n Lid: 39640 StoreEc: 0x80070005\n Lid: 45434 Guid: <redacted mailbox UUID>\n Lid: 10786 dwParam: 0x0 Msg: 15.02.0986.005:<Redacted Server name> :<redacted UUID>\n Lid: 1750 ---- Remote Context End ----\n Lid: 27962 ROP: ropSetProps [10]\n Lid: 26881 \n Lid: 21817 ROP Failure: 0x80070005\n Lid: 28414 \n Lid: 32510 StoreEc: 0x80070005\r\n at Microsoft.Mapi.MapiExceptionHelper.InternalThrowIfErrorOrWarning(String message, Int32 hresult, Boolean allowWarnings, Int32 ec, DiagnosticContext diagCtx, Exception innerException)\r\n at Microsoft.Mapi.MapiExceptionHelper.ThrowIfError(String message, Int32 hresult, IExInterface iUnknown, Exception innerException)\r\n at Microsoft.Mapi.MapiTable.QueryRows(Int32 crows, QueryRowsFlags flags)\r\n at Microsoft.Mapi.MapiTable.QueryAllRows(Restriction restriction, ICollection`1 propTags)\r\n at Microsoft.Exchange.Data.Storage.MapiAttachmentProvider.QueryAttachmentTable(NativeStorePropertyDefinition[] properties)\r\n --- End of inner exception stack trace ---\r\n at Microsoft.Exchange.Data.Storage.MapiAttachmentProvider.QueryAttachmentTable(NativeStorePropertyDefinition[] properties)\r\n at Microsoft.Exchange.Data.Storage.CoreAttachmentCollection.InternalOpen(AttachmentHandle handle, ICollection`1 preloadProperties)\r\n at Microsoft.Exchange.Data.Storage.CoreAttachmentCollection.Open(IAttachmentHandle handle, ICollection`1 preloadProperties)\r\n at Microsoft.Exchange.Data.Storage.Auditing.CoreItemExtensions.AttachmentsAsAuditString(ICoreItem coreItem)\r\n at Microsoft.Exchange.Data.Storage.Adapters.ObjectEventHandlers.CopyOnWriteEventHandler.CacheItemInformation(CallbackContext cowContext, ICoreItem item, Boolean includeLegallyDirtyProperties)\r\n at Microsoft.Exchange.Data.Storage.Adapters.ObjectEventHandlers.CopyOnWriteEventHandler.Handle(BeforeItemSaveEvent onBeforeItemSaveArgs)\r\n at Microsoft.Exchange.Data.StoreObjects.Extensibility.InlineEvent.EventDispatcher.<>c__DisplayClass4_1`1.<Dispatch>b__0()\r\n at Microsoft.Exchange.Data.StoreObjects.Extensibility.InlineEvent.EventDispatcher.Dispatch[TEvent](TEvent eventData)\r\n at Microsoft.Exchange.Data.Storage.CoreItem.PreSave(OperationContext operationContext)\r\n at Microsoft.Exchange.Data.Storage.CoreItem.InternalSave(SaveMode saveMode, OperationContext operationContext)\r\n at Microsoft.Exchange.Data.Storage.CoreItem.SaveOrSend(SaveMode saveMode, OperationContext operationContext, CoreItemOperation operation)\r\n at Microsoft.Exchange.Data.Storage.Item.SaveInternal(SaveMode saveMode, Boolean commit, OperationContext operationContext, CoreItemOperation operation)\r\n at Microsoft.Exchange.Data.Storage.Item.Save(SaveMode saveMode)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.<>c__DisplayClass7_0.<Retry>b__0()\r\n at Microsoft.Exchange.Data.Storage.MailboxSession.BypassAuditsFolderAccessChecking(Action action)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.Retry(IRetryContext retryContext)\r\n at Microsoft.Exchange.MailboxAssistants.Assistants.BigFunnelRetryFeederTimeBasedAssistant.BigFunnelRetryFeederTimeBasedAssistant.DoRetryItem(BigFunnelRetryFeederTaskContext context)",
2022-02-07T01:08:33.889Z,Failures,1,BigFunnelRetryFeederTimeBasedAssistant_15213362,,"Retry Failure for mailbox <redacted mailbox UUID> with error : RetriableItem.Retry for Item with StoreId: <redacted mailbox store ID>, BigFunnelCorrelationId: <redacted UUID>, Item Class: IPM.Note failed with Exception: Microsoft.Exchange.Data.Storage.MessageSubmissionExceededException: Cannot save changes made to an item to store. ---> Microsoft.Mapi.MapiExceptionMaxSubmissionExceeded: MapiExceptionMaxSubmissionExceeded: Unable to save changes. (hr=0x80004005, ec=1242)\nDiagnostic context:\n Lid: 55847 EMSMDBPOOL.EcPoolSessionDoRpc called [length=133]\n Lid: 43559 EMSMDBPOOL.EcPoolSessionDoRpc returned [ec=0x0][length=380][latency=1]\n Lid: 52176 ClientVersion: 15.2.986.5\n Lid: 50032 ServerVersion: 15.2.986.6005\n Lid: 35180 \n Lid: 23226 --- ROP Parse Start ---\n Lid: 27962 ROP: ropSaveChangesMessage [12]\n Lid: 17082 ROP Error: 0x4DA \n Lid: 18273 \n Lid: 21921 StoreEc: 0x4DA \n Lid: 27962 ROP: ropExtendedError [250]\n Lid: 1494 ---- Remote Context Beg ----\n Lid: 59176 dwParam: 0x3200000 Msg: Limitation\n Lid: 34600 dwParam: 0x4A5AF12 Msg: CurrentSize\n Lid: 49178 dwParam: 0x0\n Lid: 42792 dwParam: 0x0\n Lid: 36890 StoreEc: 0x4DA \n Lid: 40748 qdwParam: 0x647E780000000001\n Lid: 57132 qdwParam: 0x9BEA7A0000000001\n Lid: 63016 dwParam: 0xC\n Lid: 39640 StoreEc: 0x4DA \n Lid: 45434 Guid: <redacted mailbox UUID>\n Lid: 10786 dwParam: 0x0 Msg: 15.02.0986.005:<redacted server name>:<redacted UUID>\n Lid: 1750 ---- Remote Context End ----\n Lid: 31418 --- ROP Parse Done ---\n Lid: 21457 \n Lid: 19665 StoreEc: 0x4DA \n Lid: 37632 \n Lid: 37888 StoreEc: 0x4DA \r\n at Microsoft.Mapi.MapiExceptionHelper.InternalThrowIfErrorOrWarning(String message, Int32 hresult, Boolean allowWarnings, Int32 ec, DiagnosticContext diagCtx, Exception innerException)\r\n at Microsoft.Mapi.MapiExceptionHelper.ThrowIfError(String message, Int32 hresult, IExInterface iUnknown, Exception innerException)\r\n at Microsoft.Mapi.MapiProp.SaveChanges(SaveChangesFlags flags)\r\n at Microsoft.Exchange.Data.Storage.MapiPropertyBag.SaveChanges(Boolean force)\r\n --- End of inner exception stack trace ---\r\n at Microsoft.Exchange.Data.Storage.MapiPropertyBag.SaveChanges(Boolean force)\r\n at Microsoft.Exchange.Data.Storage.StoreObjectPropertyBag.SaveChanges(Boolean force)\r\n at Microsoft.Exchange.Data.Storage.AcrPropertyBag.SaveChanges(Boolean force)\r\n at Microsoft.Exchange.Data.Storage.CoreItem.InternalSave(SaveMode saveMode, OperationContext operationContext)\r\n at Microsoft.Exchange.Data.Storage.CoreItem.SaveOrSend(SaveMode saveMode, OperationContext operationContext, CoreItemOperation operation)\r\n at Microsoft.Exchange.Data.Storage.Item.SaveInternal(SaveMode saveMode, Boolean commit, OperationContext operationContext, CoreItemOperation operation)\r\n at Microsoft.Exchange.Data.Storage.Item.Save(SaveMode saveMode)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.<>c__DisplayClass7_0.<Retry>b__0()\r\n at Microsoft.Exchange.Data.Storage.MailboxSession.BypassAuditsFolderAccessChecking(Action action)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.Retry(IRetryContext retryContext)",
2022-02-07T07:47:15.130Z,Failures,1,BigFunnelRetryFeederTimeBasedAssistant_52565294,,"Retry Failure for mailbox <redacted mailbox UUID> with error : RetriableItem.Retry for Item with StoreId: <redacted mailbox store ID>, BigFunnelCorrelationId: <redacted UUID>, Item Class: failed with Exception: Microsoft.Exchange.Data.Storage.ObjectNotFoundException: The process failed to get the correct properties. ---> Microsoft.Mapi.MapiExceptionNotFound: MapiExceptionNotFound: Unable to get properties on object. (hr=0x8004010f, ec=-2147221233)\nDiagnostic context:\n Lid: 55847 EMSMDBPOOL.EcPoolSessionDoRpc called [length=1159]\n Lid: 43559 EMSMDBPOOL.EcPoolSessionDoRpc returned [ec=0x0][length=290][latency=0]\n Lid: 52176 ClientVersion: 15.2.986.5\n Lid: 50032 ServerVersion: 15.2.986.6005\n Lid: 35180 \n Lid: 23226 --- ROP Parse Start ---\n Lid: 27962 ROP: ropOpenMessage [3]\n Lid: 17082 ROP Error: 0x8004010F\n Lid: 26977 \n Lid: 21921 StoreEc: 0x8004010F\n Lid: 27962 ROP: ropExtendedError [250]\n Lid: 1494 ---- Remote Context Beg ----\n Lid: 50428 \n Lid: 59416 StoreEc: 0x8004010F\n Lid: 38536 \n Lid: 45434 Guid: <redacted UUID>\n Lid: 10786 dwParam: 0x0 Msg: 15.02.0986.005:<redacted Server name>:<redacted UUID>\n Lid: 1750 ---- Remote Context End ----\n Lid: 27962 ROP: ropGetPropsSpecific [7]\n Lid: 17082 ROP Error: 0x4B9 \n Lid: 26465 \n Lid: 21921 StoreEc: 0x4B9 \n Lid: 31418 --- ROP Parse Done ---\n Lid: 22753 \n Lid: 21817 ROP Failure: 0x4B9 \n Lid: 20385 \n Lid: 28577 StoreEc: 0x8004010F\n Lid: 32001 \n Lid: 29953 StoreEc: 0x8004010F\n Lid: 32768 \n Lid: 33024 StoreEc: 0x8004010F\r\n at Microsoft.Mapi.MapiExceptionHelper.InternalThrowIfErrorOrWarning(String message, Int32 hresult, Boolean allowWarnings, Int32 ec, DiagnosticContext diagCtx, Exception innerException)\r\n at Microsoft.Mapi.MapiExceptionHelper.ThrowIfError(String message, Int32 hresult, IExInterface iUnknown, Exception innerException)\r\n at Microsoft.Mapi.MapiProp.GetProps(ICollection`1 propTagsRequested)\r\n at Microsoft.Exchange.Data.Storage.MapiPropertyBag.GetProperties(IList`1 propertyDefinitions)\r\n --- End of inner exception stack trace ---\r\n at Microsoft.Exchange.Data.Storage.MapiPropertyBag.GetProperties(IList`1 propertyDefinitions)\r\n at Microsoft.Exchange.Data.Storage.StoreObjectPropertyBag.InternalLoad(ICollection`1 extraProperties)\r\n at Microsoft.Exchange.Data.Storage.StoreObjectPropertyBag.Load(ICollection`1 properties)\r\n at Microsoft.Exchange.Data.Storage.StoreObjectPropertyBag..ctor(IStoreSession session, MapiProp mapiProp, ICollection`1 autoloadProperties, Boolean canSaveOrDisposeMapiProp)\r\n at Microsoft.Exchange.Data.Storage.CoreItem.CoreItemFactory.CoreItemBind(IStoreSession session, StoreId storeId, MapiMessageCreator mapiMessageCreator, ItemBindOption itemBindOption, ICollection`1 propertiesToLoad, StoreObjectType& storeObjectType)\r\n at Microsoft.Exchange.Data.Storage.ItemBuilder.ItemBind[T](IStoreSession session, StoreId storeId, Schema expectedSchema, MapiMessageCreator mapiMessageCreator, ItemBindOption itemBindOption, ICollection`1 propertiesToLoad, ItemCreateInfo itemCreateInfo)\r\n at Microsoft.Exchange.Data.Storage.ItemRepository.Bind(StoreId storeId, ItemBindOption itemBindOption, ICollection`1 propsToReturn, Nullable`1 expectedStoreObjectType)\r\n at Microsoft.Exchange.Data.Storage.Item.Bind(IStoreSession session, StoreId storeId, ItemBindOption itemBindOption, ICollection`1 propsToReturn)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.GetPreparedItem(IRetryContext retryContext)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.<>c__DisplayClass7_0.<Retry>b__0()\r\n at Microsoft.Exchange.Data.Storage.MailboxSession.BypassAuditsFolderAccessChecking(Action action)\r\n at Microsoft.Exchange.Search.BigFunnel.RetryFeeder.RetriableItem.Retry(IRetryContext retryContext)",