VirtoCommerce/vc-module-core

Search throw an exception when you open Fill properties blade in product clone process

asvishnyakov opened this issue · 1 comments

Exception:

{  
   "message":"An error has occurred.",
   "exceptionMessage":"One or more errors occurred.",
   "exceptionType":"System.AggregateException",
   "stackTrace":"   at System.Threading.Tasks.Task.WaitAll(Task[] tasks, Int32 millisecondsTimeout, CancellationToken cancellationToken)\r\n   at VirtoCommerce.CatalogModule.Data.Services.CatalogSearchServiceImpl.Search(SearchCriteria criteria)\r\n   at VirtoCommerce.CatalogModule.Data.Services.CatalogSearchServiceDecorator.Search(SearchCriteria criteria)\r\n   at VirtoCommerce.Platform.Data.Common.CacheManagerExtension.Get[T](ICacheManager`1 cacheManager, String cacheKey, String region, TimeSpan expiration, ExpirationMode expirationMode, Func`1 getValueFunction, Boolean cacheNullValue)\r\n   at VirtoCommerce.Platform.Data.Common.CacheManagerExtension.Get[T](ICacheManager`1 cacheManager, String cacheKey, String region, TimeSpan expiration, Func`1 getValueFunction, Boolean cacheNullValue)\r\n   at VirtoCommerce.Platform.Data.Common.CacheManagerExtension.Get[T](ICacheManager`1 cacheManager, String cacheKey, String region, TimeSpan expiration, Func`1 getValueFunction)\r\n   at VirtoCommerce.CacheModule.Data.Decorators.CacheManagerAdaptor.Get[T](String cacheKey, String region, Func`1 getValueFunction)\r\n   at VirtoCommerce.CacheModule.Data.Decorators.CatalogServicesDecorator.Search(SearchCriteria criteria)\r\n   at VirtoCommerce.CatalogModule.Web.Controllers.Api.CatalogModuleListEntryController.ListItemsSearch(SearchCriteria criteria)\r\n   at lambda_method(Closure , Object , Object[] )\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Cors.CorsMessageHandler.<HandleCorsRequestAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Cors.CorsMessageHandler.<SendAsync>d__0.MoveNext()",
   "innerException":{  
      "message":"An error has occurred.",
      "exceptionMessage":"Value cannot be null.\r\nParameter name: key",
      "exceptionType":"System.ArgumentNullException",
      "stackTrace":"   at System.ThrowHelper.ThrowArgumentNullException(ExceptionArgument argument)\r\n   at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add)\r\n   at System.Linq.Enumerable.ToDictionary[TSource,TKey,TElement](IEnumerable`1 source, Func`2 keySelector, Func`2 elementSelector, IEqualityComparer`1 comparer)\r\n   at VirtoCommerce.CatalogModule.Data.Services.ItemServiceImpl.LoadDependencies(CatalogProduct[] products, Boolean processVariations)\r\n   at VirtoCommerce.CatalogModule.Data.Services.ItemServiceImpl.GetByIds(String[] itemIds, ItemResponseGroup respGroup, String catalogId)\r\n   at VirtoCommerce.CatalogModule.Data.Services.CatalogSearchServiceImpl.SearchItems(SearchCriteria criteria, SearchResult result)\r\n   at System.Threading.Tasks.Task.Execute()"
   }
}

How to reproduce:

  1. Open any product
  2. Click Clone
  3. Try to open Fill properties blade

500 error occurs

To fix problem, disable indexed search in catalog, restart platform and rebuild index with deletion.