Error when upgrading to EPiServer Commerce 7.10.3

Vote:
 

Hi

After the upgrade to 7.10.3 I get to EPiServer Commere Migration Steps page. Running it generates the following error:

2014-09-22 15:06:20,519 [137] ERROR EPiServer.Commerce.Internal.Migration.MigrationProgressMessenger: Update asset types failed with exception 'System.AggregateException: One or more errors occurred. ---> System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
   at System.Guid.GuidResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument, String failureArgumentName, Exception innerException)
   at System.Guid.TryParseGuidWithNoStyle(String guidString, GuidResult& result)
   at System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result)
   at System.Guid..ctor(String g)
   at EPiServer.Commerce.Catalog.Provider.Construction.CatalogPropertyLoader.GetAssetLink(String assetKey)
   at EPiServer.Commerce.Catalog.Provider.Construction.CatalogPropertyLoader.b__8(CatalogItemAssetRow a)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at EPiServer.Commerce.SpecializedProperties.ItemCollection`1..ctor(IEnumerable`1 items)
   at EPiServer.Commerce.Catalog.Provider.Construction.CatalogPropertyLoader.LoadAssets(CatalogEntryRow entryRow, EntryContentBase content)
   at EPiServer.Commerce.Catalog.Provider.Construction.EntryBuilder.ConstructEntries(CatalogEntryDto entryDto, String language)
   at EPiServer.Commerce.Catalog.Provider.Construction.EntryBuilder.Create(IList`1 contentLinks, String language)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentLoader.GetContentFromBuilder[T](String language, IEnumerable`1 linkByType)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentLoader.GetItems[T](IList`1 contentLinks, String language, IMarket market)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.GetCommittedContents(IList`1 contentLinks, String language)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.GetCommittedContent(ContentReference contentLink, String language)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.SyncVersionsWithEcf(ContentReference contentLink)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.ContentUpdatedInEcf(Object sender, ContentEventArgs e)
   at EPiServer.Commerce.Catalog.Provider.CatalogEventHandler.RefreshContent(Int32 objectId, CatalogContentType type, Boolean isLocalChange)
   at EPiServer.Commerce.Catalog.Provider.CatalogEventHandler.LocalEntryUpdate(Object sender, EntryEventArgs e)
   at Mediachase.Commerce.Catalog.EventContext.EntryEventHandler.Invoke(Object sender, EntryEventArgs e)
   at Mediachase.Commerce.Catalog.Managers.CatalogEntryManager.<>c__DisplayClass1f.b__1a()
   at Mediachase.Data.Provider.TransactionScope.ExecuteActions(IEnumerable`1 actions)
   --- End of inner exception stack trace ---
   at Mediachase.Data.Provider.TransactionScope.ExecuteActions(IEnumerable`1 actions)
   at EPiServer.Commerce.Internal.Migration.Steps.RefreshCatalogContentStep.UpdateEntryContents(IProgressMessenger progressMessenger, Int32 startPercent, Int32 totalPercent)
   at EPiServer.Commerce.Internal.Migration.Steps.RefreshCatalogContentStep.Execute(IProgressMessenger progressMessenger)
---> (Inner Exception #0) System.FormatException: Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
   at System.Guid.GuidResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument, String failureArgumentName, Exception innerException)
   at System.Guid.TryParseGuidWithNoStyle(String guidString, GuidResult& result)
   at System.Guid.TryParseGuid(String g, GuidStyles flags, GuidResult& result)
   at System.Guid..ctor(String g)
   at EPiServer.Commerce.Catalog.Provider.Construction.CatalogPropertyLoader.GetAssetLink(String assetKey)
   at EPiServer.Commerce.Catalog.Provider.Construction.CatalogPropertyLoader.b__8(CatalogItemAssetRow a)
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at EPiServer.Commerce.SpecializedProperties.ItemCollection`1..ctor(IEnumerable`1 items)
   at EPiServer.Commerce.Catalog.Provider.Construction.CatalogPropertyLoader.LoadAssets(CatalogEntryRow entryRow, EntryContentBase content)
   at EPiServer.Commerce.Catalog.Provider.Construction.EntryBuilder.ConstructEntries(CatalogEntryDto entryDto, String language)
   at EPiServer.Commerce.Catalog.Provider.Construction.EntryBuilder.Create(IList`1 contentLinks, String language)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentLoader.GetContentFromBuilder[T](String language, IEnumerable`1 linkByType)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentLoader.GetItems[T](IList`1 contentLinks, String language, IMarket market)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.GetCommittedContents(IList`1 contentLinks, String language)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.GetCommittedContent(ContentReference contentLink, String language)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.SyncVersionsWithEcf(ContentReference contentLink)
   at EPiServer.Commerce.Catalog.Provider.CatalogContentDraftStore.ContentUpdatedInEcf(Object sender, ContentEventArgs e)
   at EPiServer.Commerce.Catalog.Provider.CatalogEventHandler.RefreshContent(Int32 objectId, CatalogContentType type, Boolean isLocalChange)
   at EPiServer.Commerce.Catalog.Provider.CatalogEventHandler.LocalEntryUpdate(Object sender, EntryEventArgs e)
   at Mediachase.Commerce.Catalog.EventContext.EntryEventHandler.Invoke(Object sender, EntryEventArgs e)
   at Mediachase.Commerce.Catalog.Managers.CatalogEntryManager.<>c__DisplayClass1f.b__1a()
   at Mediachase.Data.Provider.TransactionScope.ExecuteActions(IEnumerable`1 actions)<--->
'.

When I updated a copy of the same site to 7.11.0 the migration passes through. So why don´t I use that version or a later oneyou might ask. Wel the inRiver EPiServer connector fails with so I need an earlier version.

Anyone with some input?

Br

Oskar

#90934
Sep 22, 2014 15:12
Vote:
 

Hi,

In 7.11 we changed the way to "refresh" catalog contents - due to performance problem with big catalog.

I suspect your catalog have one or more entries with fault asset information, where they are not stored as GUIDs.

I would suggest you to check the table CatalogItemAsset to find and correct those before continuing.

//There's a slim chance that you're using old eCF asset system but forget to set UseLegacyAssetSystem to false?

Regards.

/Q

#90942
Sep 22, 2014 17:47
Vote:
 

Yes of course, thank you. UseLegacyAssetSystem did the trick. Silly me :).

/Oskar

#90943
Sep 22, 2014 19:47
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.