Added Contact Is Not Shown in List Manager in a Scaled Sitecore XP 9


There was a time when I needed to help someone from finding what’s wrong with List Manager in a scaled SXP 9 (the exact version was Sitecore Experience Platform 9.0 rev. 180604 (9.0 Update-2)).
New contacts added into List Manager does not appear even though the blue color message box around the top area says:
The contact has been added to the list, and will be available after indexing.

Looking at the Sitecore logs, there are errors such as:
4244 17:14:27 ERROR [ListManagement]: Failed to get count of contacts for 86c048c4-761d-47c8-814f-30344a5dcac8 contact list. The error has been occurred: The HTTP response was not successful: InternalServerError
Exception: Sitecore.XConnect.XdbSearchUnavailableException
Message: The HTTP response was not successful: InternalServerError
Source: Sitecore.Xdb.Common.Web
   at Sitecore.Xdb.Common.Web.Synchronous.SynchronousExtensions.SuspendContextLock[TResult](Func`1 taskFactory)
   at Sitecore.XConnect.Client.XConnectSynchronousExtensions.SuspendContextLock[TResult](Func`1 taskFactory)
   at Sitecore.XConnect.Client.XConnectSynchronousExtensions.GetBatchEnumeratorSync[TEntity](IAsyncQueryable`1 asyncQueryable, Int32 defaultBatchSize)
   at Sitecore.XConnect.Segmentation.SegmentationEngine.<>c.<CountContacts>b__24_0(IAsyncQueryable`1 contacts)
   at Sitecore.XConnect.Segmentation.SegmentationEngine.PerformSearch[T](IContactSearchQueryFactory queryFactory, Func`2 searchWork, Byte[] syncToken, ContactExpandOptions expandOptions)
   at Sitecore.XConnect.Segmentation.SegmentationEngine.CountContacts(IContactSearchQueryFactory queryFactory)
   at Sitecore.ListManagement.Services.Repositories.ListRepositoryBase`1.<>c__DisplayClass51_0.<GetRecipientCount>b__0()

7860 17:14:27 ERROR [ListManagement]: Failed to get count of contacts for 86c048c4-761d-47c8-814f-30344a5dcac8 contact list. The error has been occurred: The HTTP response was not successful: InternalServerError
Exception: Sitecore.XConnect.XdbSearchUnavailableException
Message: The HTTP response was not successful: InternalServerError
Source: Sitecore.Xdb.Common.Web
   at Sitecore.Xdb.Common.Web.Synchronous.SynchronousExtensions.SuspendContextLock[TResult](Func`1 taskFactory)
   at Sitecore.XConnect.Client.XConnectSynchronousExtensions.SuspendContextLock[TResult](Func`1 taskFactory)
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
   at Sitecore.XConnect.Segmentation.SegmentationEngine.PerformSearch[T](IContactSearchQueryFactory queryFactory, Func`2 searchWork, Byte[] syncToken, ContactExpandOptions expandOptions)
   at Sitecore.XConnect.Segmentation.SegmentationEngine.FindContacts(IContactSearchQueryFactory queryFactory, Int32 skip, Int32 take, ContactExpandOptions expandOptions)
   at Sitecore.ListManagement.XConnect.ContactProvider.GetFilteredContacts(ContactList contactList, String searchFilter, Int32 pageIndex, Int32 pageSize)
   at Sitecore.ListManagement.Services.Repositories.ListSubscriptionsStore.GetSubscribers(Guid listId, String searchFilter, Int32 pageIndex, Int32 pageSize)
   at Sitecore.ListManagement.Services.Controllers.ContactsController.GetEntities(Guid listId, String filter, Int32 pageIndex, Int32 pageSize)


Both calls from ListRepositoryBase and ContactsController lead to [Sitecore.XConnect.XdbSearchUnavailableException], therefore, I decided to check what error I could find in the xConnect.

The xConnect connected by the CM is shown in the ConnectionStrings.config with the name “xconnect.collection”. I checked the connected xConnect server and I could find several error logs such as:
2018-11-22 17:13:44.095 +00:00 [Error] Sitecore.XConnect.Operations.XdbSearchOperation`1[Sitecore.XConnect.Contact]: System.NotSupportedException: Specified method is not supported.
   at Sitecore.Xdb.Collection.Indexing.IndexReaderDisabled.SearchContacts(SearchQuery searchQuery)
   at Sitecore.Xdb.Collection.Repository.<SearchContacts>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Sitecore.Xdb.Collection.RepositoryCountersDecorator.<SearchContacts>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Sitecore.XConnect.Service.RepositorySearchInvoker.<Execute>d__7.MoveNext()
2018-11-22 17:13:44.095 +00:00 [Error] ["XdbContextLoggingPlugin"] XdbContext Batch Execution Exception
System.NotSupportedException: Specified method is not supported.
   at Sitecore.Xdb.Collection.Indexing.IndexReaderDisabled.SearchContacts(SearchQuery searchQuery)
   at Sitecore.Xdb.Collection.Repository.<SearchContacts>d__11.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Sitecore.Xdb.Collection.RepositoryCountersDecorator.<SearchContacts>d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Sitecore.XConnect.Service.RepositorySearchInvoker.<Execute>d__7.MoveNext()

At first I wasn’t able to reproduce the above issue as I hadn’t identified what could be the issue. After some long investigation, I decided to take some break, and tried it out in a clean instance of Sitecore.

Eventually, I found that the problematic Sitecore instance (CM server) had its setting “xconnect.collection” connected to a different xConnect than the one in a clean Sitecore instance. When I first finished installing my Sitecore in Azure (via Sitecore Experience Cloud), I found that the value in the setting “xconnect.collection” (in CM’s ConnectionStrings.config) was the server “xxx-xc-search” by default, however the problematic Sitecore connected that setting to the server “xxx-xc-collect”.

I then tried to change my default setting “xconnect.collection” to use the one used by the problematic Sitecore, which was “xxx-xc-collect”. I was then able to reproduce the issue (the contact in List Manager doesn’t appear).

I would conclude that the issue above was caused by the CM’s "xconnect.collection" setting connecting to a different server than“xxx-xc-search”. There must be certain operations available in "xxx-xc-search" which server "xxx-xc-collect" could not do.

Comments

  1. Рейтинг онлайн-казино включает клубы, предлагающие хорошо продуманную мотивационную программу. Посетителей ждут неоднозначные бонусы — приветственные, бездепозитные, фриспины, релоад. Некоторые порталы презентуют поощрения в, праздничным, ко дню рождения. Кроме этого официальные онлайн казино, поддерживают программу преданности со статусами, позволяющую получить дополнительные подарки за активность. Одновременно ведутся турниры, лотереи, сезонные промоакции. Благодаря данному посетители выигрывают больше, имеют превосходно рассеяться, вложив минимум.

    ReplyDelete

Post a Comment

Popular posts from this blog

Windows could not start the Sitecore Xconnect Search Indexer - {xConnectInstance}-IndexWorker service on Local Computer. Error 1064: An exception occurred in the service when handling the control request.

EXM Throws NonCriticalException "Failed to download string content" with Nested Exception of "403 Forbidden" in Azure Web App