Commerce upgrade fails on /Commerce/Migrate page

Vote:
 

Hi, 

I'm upgrading Episerver from 10.2.1 to 11.3.1 and Commerce from 11.5.0 to 11.8.0.

I have ran the update-epidatabase command that completes successfully and have enabled AutoMigrateEPiServer in web.config.

Once I load the site it redirects me to the /Commerce/Migrate url because there is an error:

2018-02-10 15:03:38,517 [442] ERROR EPiServer.Commerce.Internal.Migration.MigrationProgressMessenger: Migrate indexing queue step has failed with exception 'System.NullReferenceException: Object reference not set to an instance of an object.
at Mediachase.Search.SearchManager.d__15.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at EPiServer.Commerce.Internal.Migration.Steps.MigrateIndexingQueueStep.Execute(IProgressMessenger progressMessenger)'.

How can I complete this upgrade? 

#188060
Feb 10, 2018 5:12
Vote:
 

I would suggest you to check for Mediachase.Search.config in configs folder. Is the type for the indexer there 

<Indexers basePath="[appDataPath]\Quicksilver\SearchIndex">
<add name="catalog" type="EPiServer.Reference.Commerce.Site.Infrastructure.Indexing.CatalogIndexer, EPiServer.Reference.Commerce.Site" />
</Indexers>

correct and the assembly is in bin folder? 

#188061
Feb 10, 2018 11:04
Vote:
 

Thanks Quan,

Actually I have this indexer:

<Indexers basePath="indexcontainer" connectionStringName="EPiServerAzureBlobs">
<add name="catalog" type="EPiServer.Commerce.FindSearchProvider.FindSearchIndexBuilder, EPiServer.Commerce.FindSearchProvider"/>
</Indexers>

That EPiServerAzureBlobs connection string is invalid on my local installations. What should it look like for a non-cloud deployment?

This is the full error from a migration attempt:

2018-02-11 13:38:18,705 [208] ERROR EPiServer.DataAbstraction.RuntimeModel.Internal.ContentTypeModelRegister: Detected change of type on property ResetPasswordPage on LoginPage. Converting existing content of type EPiServer.Core.PropertyPageReference to new backing type EPiServer.Core.PropertyContentReference is not possible without loss of data. No change is commited.
2018-02-11 13:38:18,713 [208] ERROR EPiServer.DataAbstraction.RuntimeModel.Internal.ContentTypeModelRegister: Detected change of type on property NotAMemberPage on LoginPage. Converting existing content of type EPiServer.Core.PropertyPageReference to new backing type EPiServer.Core.PropertyContentReference is not possible without loss of data. No change is commited.
2018-02-11 13:38:22,866 [485] ERROR EPiServer.Find.Commerce.FindCommerceInitializationModule: Could not apply catalog content conventions.
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.Assembly.GetTypes()
at EPiServer.Find.ClientConventions.NestedConventions.<>c__DisplayClass17_0.<MarkAllImplementationsAsNested>b__1(Assembly a)
at EPiServer.Find.Helpers.ListExtensions.ForEach[T](IEnumerable`1 value, Action`1 action)
at EPiServer.Find.ClientConventions.NestedConventions.MarkAllImplementationsAsNested(Type declaringType, String name)
at EPiServer.Find.Commerce.CatalogContentClientConventions.ApplyNestedConventions(NestedConventions nestedConventions)
at EPiServer.Find.Commerce.CatalogContentClientConventions.ApplyConventions(IClientConventions clientConventions)
at EPiServer.Find.Commerce.FindCommerceInitializationModule.Initialize(InitializationEngine context)
System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types. Retrieve the LoaderExceptions property for more information.
at System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
at System.Reflection.Assembly.GetTypes()
at EPiServer.Find.ClientConventions.NestedConventions.<>c__DisplayClass17_0.<MarkAllImplementationsAsNested>b__1(Assembly a)
at EPiServer.Find.Helpers.ListExtensions.ForEach[T](IEnumerable`1 value, Action`1 action)
at EPiServer.Find.ClientConventions.NestedConventions.MarkAllImplementationsAsNested(Type declaringType, String name)
at EPiServer.Find.Commerce.CatalogContentClientConventions.ApplyNestedConventions(NestedConventions nestedConventions)
at EPiServer.Find.Commerce.CatalogContentClientConventions.ApplyConventions(IClientConventions clientConventions)
at EPiServer.Find.Commerce.FindCommerceInitializationModule.Initialize(InitializationEngine context)
2018-02-11 13:38:26,762 [111] ERROR EPiServer.Commerce.Internal.Migration.MigrationProgressMessenger: Migrate indexing queue step has failed with exception 'System.NullReferenceException: Object reference not set to an instance of an object.
at Mediachase.Search.SearchManager.<CreateSearchIndexBuilders>d__15.MoveNext()
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at EPiServer.Commerce.Internal.Migration.Steps.MigrateIndexingQueueStep.Execute(IProgressMessenger progressMessenger)'.

#188065
Feb 11, 2018 3:47
Vote:
 

I don't think FindSearchProvider knows or cares about connectionStringName="EPiServerAzureBlobs", i.e. you can remove it in your local deployment. 

Is EPiServer.Commerce.FindSearchProvider.dll in the bin folder of your site? 

#188067
Feb 11, 2018 11:12
Vote:
 

Migration completed.

Thanks Quan! Be nice if the error had been more forthcoming. I just had to add the nuget package for that DLL. 

#188074
Feb 12, 2018 0:14
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.