After deploying to the staging environment, I'm getting the following error with some Grid Editor Document Types when clicking on the Document Type in the Settings section of Umbraco.
"Failed to retrieve content type"
Inner Exception "System.InvalidOperationException: Sequence contains more than one matching element"
Is it possible to copy/paste the rest of the stack-trace for the InvalidOperationException please? As I'm not sure where that error is coming from - whether it's Umbraco or DTGE.
Just checking, with the Staging upgrade, was that incremental too? as in if the DTGE content on Staging was using certain doctype GUIDs, then the v7.4 upgrade migration changed all the doctype GUIDs - then the DTGE content wouldn't know what it's looking for.
Is it possible to copy/paste the rest of the stack-trace for the InvalidOperationException please? As I'm not sure where that error is coming from - whether it's Umbraco or DTGE.
Please see the stacktrace below. I feel that it is an Umbraco issue. The fixes I have seen for this issue so far don't relate to Document Types in a Grid Layout.
An error occured
Mapping types:
ContentType -> IEnumerable`1
Umbraco.Core.Models.ContentType -> System.Collections.Generic.IEnumerable`1[[Umbraco.Web.Models.ContentEditing.PropertyGroupDisplay`1[[Umbraco.Web.Models.ContentEditing.PropertyTypeDisplay, umbraco, Version=1.0.6684.15731, Culture=neutral, PublicKeyToken=null]], umbraco, Version=1.0.6684.15731, Culture=neutral, PublicKeyToken=null]]
Destination path:
DocumentTypeDisplay.Groups.Groups
Source value:
Umbraco.Core.Models.ContentType
Exception Details
AutoMapper.AutoMapperMappingException:
Mapping types:
ContentType -> IEnumerable`1
Umbraco.Core.Models.ContentType -> System.Collections.Generic.IEnumerable`1[[Umbraco.Web.Models.ContentEditing.PropertyGroupDisplay`1[[Umbraco.Web.Models.ContentEditing.PropertyTypeDisplay, umbraco, Version=1.0.6684.15731, Culture=neutral, PublicKeyToken=null]], umbraco, Version=1.0.6684.15731, Culture=neutral, PublicKeyToken=null]]
Destination path:
DocumentTypeDisplay.Groups.Groups
Source value:
Umbraco.Core.Models.ContentType
Stacktrace
at Umbraco.Web.Editors.ContentTypeController.GetById(Int32 id)
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()
Inner Exception
System.InvalidOperationException: Sequence contains more than one matching element
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
at Umbraco.Core.PropertyEditors.PropertyEditorResolver.GetByAlias(String alias)
at Umbraco.Web.Models.Mapping.PropertyTypeGroupResolver`1.MapProperties(IEnumerable`1 properties, IContentTypeBase contentType, Int32 groupId, Boolean inherited)
at Umbraco.Web.Models.Mapping.PropertyTypeGroupResolver`1.ResolveCore(IContentTypeComposition source)
at AutoMapper.ValueResolver`2.Resolve(ResolutionResult source) in c:\dev\AutoMapper\src\AutoMapper\ValueResolver.cs:line 12
at AutoMapper.PropertyMap.<ResolveValue>b__6(ResolutionResult current, IValueResolver resolver) in c:\dev\AutoMapper\src\AutoMapper\PropertyMap.cs:line 127
at System.Linq.Enumerable.Aggregate[TSource,TAccumulate](IEnumerable`1 source, TAccumulate seed, Func`3 func)
at AutoMapper.PropertyMap.ResolveValue(ResolutionContext context) in c:\dev\AutoMapper\src\AutoMapper\PropertyMap.cs:line 127
at AutoMapper.Mappers.TypeMapObjectMapperRegistry.PropertyMapMappingStrategy.MapPropertyValue(ResolutionContext context, IMappingEngineRunner mapper, Object mappedObject, PropertyMap propertyMap) in c:\dev\AutoMapper\src\AutoMapper\Mappers\TypeMapObjectMapperRegistry.cs:line 116
An error occured
Mapping types:
ContentType -> IEnumerable`1
Umbraco.Core.Models.ContentType -> System.Collections.Generic.IEnumerable`1[[Umbraco.Web.Models.ContentEditing.PropertyGroupDisplay`1[[Umbraco.Web.Models.ContentEditing.PropertyTypeDisplay, umbraco, Version=1.0.6684.15731, Culture=neutral, PublicKeyToken=null]], umbraco, Version=1.0.6684.15731, Culture=neutral, PublicKeyToken=null]]
Destination path:
DocumentTypeDisplay.Groups.Groups
Source value:
Umbraco.Core.Models.ContentType
Exception Details
AutoMapper.AutoMapperMappingException:
Mapping types:
ContentType -> IEnumerable`1
Umbraco.Core.Models.ContentType -> System.Collections.Generic.IEnumerable`1[[Umbraco.Web.Models.ContentEditing.PropertyGroupDisplay`1[[Umbraco.Web.Models.ContentEditing.PropertyTypeDisplay, umbraco, Version=1.0.6684.15731, Culture=neutral, PublicKeyToken=null]], umbraco, Version=1.0.6684.15731, Culture=neutral, PublicKeyToken=null]]
Destination path:
DocumentTypeDisplay.Groups.Groups
Source value:
Umbraco.Core.Models.ContentType
Stacktrace
at Umbraco.Web.Editors.ContentTypeController.GetById(Int32 id)
at lambda_method(Closure , Object , Object[] )
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass10.<GetExecutor>b__9(Object instance, Object[] methodParameters)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.Execute(Object instance, Object[] arguments)
at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__5.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__2.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__1.MoveNext()
Inner Exception
System.InvalidOperationException: Sequence contains more than one matching element
at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
at Umbraco.Core.PropertyEditors.PropertyEditorResolver.GetByAlias(String alias)
at Umbraco.Web.Models.Mapping.PropertyTypeGroupResolver`1.MapProperties(IEnumerable`1 properties, IContentTypeBase contentType, Int32 groupId, Boolean inherited)
at Umbraco.Web.Models.Mapping.PropertyTypeGroupResolver`1.ResolveCore(IContentTypeComposition source)
at AutoMapper.ValueResolver`2.Resolve(ResolutionResult source) in c:\dev\AutoMapper\src\AutoMapper\ValueResolver.cs:line 12
at AutoMapper.PropertyMap.<ResolveValue>b__6(ResolutionResult current, IValueResolver resolver) in c:\dev\AutoMapper\src\AutoMapper\PropertyMap.cs:line 127
at System.Linq.Enumerable.Aggregate[TSource,TAccumulate](IEnumerable`1 source, TAccumulate seed, Func`3 func)
at AutoMapper.PropertyMap.ResolveValue(ResolutionContext context) in c:\dev\AutoMapper\src\AutoMapper\PropertyMap.cs:line 127
at AutoMapper.Mappers.TypeMapObjectMapperRegistry.PropertyMapMappingStrategy.MapPropertyValue(ResolutionContext context, IMappingEngineRunner mapper, Object mappedObject, PropertyMap propertyMap) in c:\dev\AutoMapper\src\AutoMapper\Mappers\TypeMapObjectMapperRegistry.cs:line 116
Just checking, with the Staging upgrade, was that incremental too? as in if the DTGE content on Staging was using certain doctype GUIDs, then the v7.4 upgrade migration changed all the doctype GUIDs - then the DTGE content wouldn't know what it's looking for.
I'm pretty confident I went through and re-published all Content nodes. I think the DTGE is working as expected, I feel that it is an Umbraco issue.
I'm going to take a copy of the production site and databsae where I have re-re-published all content, and attempt the upgrade on the copied site.
Which suggests that there are multiple property-editors with the same alias. It could be either that something is lingering in memory, or that there are actually more than one property-editor with the same alias?
From looking at the bigger exception, the InvalidOperationException is coming from PropertyEditorResolver.GetByAlias.
That is making some sense as it is only affecting a handful of Document Types.
For reference, I have the following Document Type structure which has a shed load of Grid Editor Document Types which I have only highlighted a few.
Document Types
Grid Editors (no Tabs or Properties)
Blockquote (not affected)
Button (affected)
...
Image 16x9 (affected)
Image 1x1 (affected)
Image 3x4 (affected)
Image 4x3 (affected)
Image 9x16 (affected)
Image Original (affected)
...
They all have property called "Link", but it is not inherited/shared.
Which suggests that there are multiple property-editors with the same alias. It could be either that something is lingering in memory, or that there are actually more than one property-editor with the same alias?
Any ideas on how I could check what property it might be?
When you say "lingering in memory", how can I check/clear that?
As a first port of call, try going to the DataType section, open any data-type and see if the dropdown list is populated ... I'd be expecting it to either throw an error - or - list the duplicate property-editors.
When I say "lingering in memory", it could be that Umbraco has scanned all the property-editors, keeps the list in memory, then somehow has loaded them again. An app-restart (e.g. touching the web.config) should clear that out.
This is mostly guesswork, as I haven't heard of this happening before.
(and I doubt it's directly related to DTGE)
Change Document Type of grid editor content
Recently upgraded Umbraco from 7.3.8 to 7.10.4, see https://our.umbraco.org/projects/backoffice-extensions/doc-type-grid-editor/doc-type-grid-editor-feedback/91426-upgrade-011-to-050-issues, and everything is working as expected in my local environment.
After deploying to the staging environment, I'm getting the following error with some Grid Editor Document Types when clicking on the Document Type in the Settings section of Umbraco.
"Failed to retrieve content type"
Inner Exception "System.InvalidOperationException: Sequence contains more than one matching element"
I've seen some solutions, https://our.umbraco.org/forum/umbraco-7/using-umbraco-7/49606-Failed-to-retrieve-data-for-content-id-1073, but are content is inside a Grid Layout so I don't think we can change the Document Type, and no Tabs or Properties share the same name.
I'd would be grateful for any help.
Is it possible to copy/paste the rest of the stack-trace for the
InvalidOperationException
please? As I'm not sure where that error is coming from - whether it's Umbraco or DTGE.Just checking, with the Staging upgrade, was that incremental too? as in if the DTGE content on Staging was using certain doctype GUIDs, then the v7.4 upgrade migration changed all the doctype GUIDs - then the DTGE content wouldn't know what it's looking for.
Please see the stacktrace below. I feel that it is an Umbraco issue. The fixes I have seen for this issue so far don't relate to Document Types in a Grid Layout.
I'm pretty confident I went through and re-published all Content nodes. I think the DTGE is working as expected, I feel that it is an Umbraco issue.
I'm going to take a copy of the production site and databsae where I have re-re-published all content, and attempt the upgrade on the copied site.
From looking at the bigger exception, the
InvalidOperationException
is coming fromPropertyEditorResolver.GetByAlias
.Which suggests that there are multiple property-editors with the same alias. It could be either that something is lingering in memory, or that there are actually more than one property-editor with the same alias?
That is making some sense as it is only affecting a handful of Document Types.
For reference, I have the following Document Type structure which has a shed load of Grid Editor Document Types which I have only highlighted a few.
Document Types
They all have property called "Link", but it is not inherited/shared.
Any ideas on how I could check what property it might be?
When you say "lingering in memory", how can I check/clear that?
As a first port of call, try going to the DataType section, open any data-type and see if the dropdown list is populated ... I'd be expecting it to either throw an error - or - list the duplicate property-editors.
When I say "lingering in memory", it could be that Umbraco has scanned all the property-editors, keeps the list in memory, then somehow has loaded them again. An app-restart (e.g. touching the web.config) should clear that out.
This is mostly guesswork, as I haven't heard of this happening before.
(and I doubt it's directly related to DTGE)
Cheers,
- Lee
Thanks for your help Lee.
An updated another plugin and the Data Type needed re-saving. After re-saving the Data Type, everything appears to be working ... fingers crossed!
is working on a reply...