Examine index problem after updating multi-language site from 10.4.0 to 10.5.0
I am currently working on a multi language site (german and english) in the LTS branch.
After reading up on examine in 10.x I discovered the block grid indexing problem and the released "fix" in 10.5.0, so I updated the site yesterday in order to start working on the search.
Language setup:
german (de-DE), default language, mandatory language, no fallback language
english (en-US), not default, not mandatory, no fallback language
Since upgrading and re-generating the models the examine indexer keeps failing with the following two error messages:
System.NotSupportedException: Variation "de-de,<null>" is not supported by the property type.
at Umbraco.Cms.Core.Models.Property.SetValue(Object value, String culture, String segment)
at Umbraco.Cms.Core.PropertyEditors.NestedPropertyIndexValueFactoryBase'2.GetNestedResults(String keyPrefix, String culture, String segment, Boolean published, IDictionary'2 propertyTypeDictionary, TItem nestedContentRowValue)+MoveNext()
at System.Collections.Generic.List'1.InsertRange(Int32 index, IEnumerable'1 collection)
at System.Collections.Generic.List'1.AddRange(IEnumerable'1 collection)
at Umbraco.Cms.Core.PropertyEditors.NestedPropertyIndexValueFactoryBase'2.Handle(TSerialized deserializedPropertyValue, IProperty property, String culture, String segment, Boolean published)
at Umbraco.Cms.Core.PropertyEditors.JsonPropertyIndexValueFactoryBase'1.GetIndexValues(IProperty property, String culture, String segment, Boolean published)
at Umbraco.Cms.Infrastructure.Examine.BaseValueSetBuilder'1.AddPropertyValue(IProperty property, String culture, String segment, IDictionary'2 values)
at Umbraco.Cms.Infrastructure.Examine.ContentValueSetBuilder.GetValueSetsEnumerable(IContent[] content, Dictionary'2 creatorIds, Dictionary'2 writerIds)+MoveNext()
at System.Collections.Generic.LargeArrayBuilder'1.AddRange(IEnumerable'1 items)
at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable'1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable'1 source)
at Umbraco.Cms.Infrastructure.Examine.ContentIndexPopulator.IndexPublishedContent(Int32 contentParentId, Int32 pageIndex, Int32 pageSize, IReadOnlyList'1 indexes)
at Umbraco.Cms.Infrastructure.Examine.ContentIndexPopulator.PopulateIndexes(IReadOnlyList'1 indexes)
at Umbraco.Cms.Infrastructure.Examine.IndexPopulator.Populate(IIndex[] indexes)
at Umbraco.Cms.Infrastructure.Examine.ExamineIndexRebuilder.RebuildIndex(String indexName, TimeSpan delay, CancellationToken cancellationToken)
at Umbraco.Cms.Infrastructure.Examine.ExamineIndexRebuilder.<>cDisplayClass91.<RebuildIndex>b1()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.<>c.<.cctor>b2720(Object obj)
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
--- End of stack trace from previous location ---
at Umbraco.Cms.Infrastructure.HostedServices.QueuedHostedService.BackgroundProcessing(CancellationToken stoppingToken)
and
System.NotSupportedException: Variation "de-de,<null>" is not supported by the property type.
at Umbraco.Cms.Core.Models.Property.SetValue(Object value, String culture, String segment)
at Umbraco.Cms.Core.PropertyEditors.NestedPropertyIndexValueFactoryBase'2.GetNestedResults(String keyPrefix, String culture, String segment, Boolean published, IDictionary'2 propertyTypeDictionary, TItem nestedContentRowValue)+MoveNext()
at System.Collections.Generic.List'1.InsertRange(Int32 index, IEnumerable'1 collection)
at System.Collections.Generic.List'1.AddRange(IEnumerable'1 collection)
at Umbraco.Cms.Core.PropertyEditors.NestedPropertyIndexValueFactoryBase'2.Handle(TSerialized deserializedPropertyValue, IProperty property, String culture, String segment, Boolean published)
at Umbraco.Cms.Core.PropertyEditors.JsonPropertyIndexValueFactoryBase'1.GetIndexValues(IProperty property, String culture, String segment, Boolean published)
at Umbraco.Cms.Infrastructure.Examine.BaseValueSetBuilder'1.AddPropertyValue(IProperty property, String culture, String segment, IDictionary'2 values)
at Umbraco.Cms.Infrastructure.Examine.ContentValueSetBuilder.GetValueSetsEnumerable(IContent[] content, Dictionary'2 creatorIds, Dictionary'2 writerIds)+MoveNext()
at System.Collections.Generic.LargeArrayBuilder'1.AddRange(IEnumerable'1 items)
at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable'1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable'1 source)
at Umbraco.Cms.Infrastructure.Examine.ContentIndexPopulator.IndexPublishedContent(Int32 contentParentId, Int32 pageIndex, Int32 pageSize, IReadOnlyList'1 indexes)
at Umbraco.Cms.Infrastructure.Examine.ContentIndexPopulator.PopulateIndexes(IReadOnlyList'1 indexes)
at Umbraco.Cms.Infrastructure.Examine.IndexPopulator.Populate(IIndex[] indexes)
at Umbraco.Cms.Infrastructure.Examine.ExamineIndexRebuilder.RebuildIndexes(Boolean onlyEmptyIndexes, TimeSpan delay, CancellationToken cancellationToken)
I already checked umbracoPropertyData for any pages without a proper languageId, but I'm currently slightly confused by the error.
As the setup I do have the block grid editor itself to vary by language, the editors within the block grid are not vary by language obviously.
For me this seems to either confuse the indexing service because it tries to vary the content blocks by language or the indexing service just can't index already published nodes in one language, while the other language is either not yet created or has not been published?
Hi, I just experienced same thing with examine failing to index after upgrading to 11.3. To fix this I made every block grid and block list item culture varied that is used in culture varied properties/pages.
I only have one grid (vary by culture enabled) that is used as a composition in all pages (all pages have vary by culture enabled as well). That was already the case when I did the upgrade...
Like - all pages have the composition included with the block grid as the alias "contents".
Now the "old" examine index would have just created a 'contents_de-de' (and if available 'contents_en-us') with all the json from the grid in it.
The new one should populate the json fields...
And even if I enable vary by culture on every content block, layout and content item and even in some of the editors in those ... I do still get the same error...
It took a while but I made every property culture varied as well for content block/layout/item. Also don't forget about block list properties (even those that aren't used within the block grid, but elsewhere), I had a couple of those as well that needed to enable vary by culture setting.
Just confirmed this is a working option but I'll save myself the headache in the future when I forget I have to enable vary by culture on every single editor without the need to do so (it has no function)... because I probably will do so ;)
Thank you for the link, I must have completely missed this when I scanned through the github issues ... just confirmed the option to enable vary by culture is also working but I'll go with the quick fix for now and do hope this gets resolved without using vary by culture on every editor even if it can't vary ...
Examine index problem after updating multi-language site from 10.4.0 to 10.5.0
I am currently working on a multi language site (german and english) in the LTS branch.
After reading up on examine in 10.x I discovered the block grid indexing problem and the released "fix" in 10.5.0, so I updated the site yesterday in order to start working on the search.
Language setup:
Since upgrading and re-generating the models the examine indexer keeps failing with the following two error messages:
and
I already checked umbracoPropertyData for any pages without a proper languageId, but I'm currently slightly confused by the error.
As the setup I do have the block grid editor itself to vary by language, the editors within the block grid are not vary by language obviously.
For me this seems to either confuse the indexing service because it tries to vary the content blocks by language or the indexing service just can't index already published nodes in one language, while the other language is either not yet created or has not been published?
Any thoughs on this would be very helpful.
Hi, I just experienced same thing with examine failing to index after upgrading to 11.3. To fix this I made every block grid and block list item culture varied that is used in culture varied properties/pages.
I only have one grid (vary by culture enabled) that is used as a composition in all pages (all pages have vary by culture enabled as well). That was already the case when I did the upgrade...
Like - all pages have the composition included with the block grid as the alias "contents".
Now the "old" examine index would have just created a 'contents_de-de' (and if available 'contents_en-us') with all the json from the grid in it. The new one should populate the json fields...
And even if I enable vary by culture on every content block, layout and content item and even in some of the editors in those ... I do still get the same error...
It took a while but I made every property culture varied as well for content block/layout/item. Also don't forget about block list properties (even those that aren't used within the block grid, but elsewhere), I had a couple of those as well that needed to enable vary by culture setting.
Just confirmed this is a working option but I'll save myself the headache in the future when I forget I have to enable vary by culture on every single editor without the need to do so (it has no function)... because I probably will do so ;)
This is an issue with latest versions of 10 and 11. They have a workaround until its fixed:
https://github.com/umbraco/Umbraco-CMS/issues/14096
Thank you for the link, I must have completely missed this when I scanned through the github issues ... just confirmed the option to enable vary by culture is also working but I'll go with the quick fix for now and do hope this gets resolved without using vary by culture on every editor even if it can't vary ...
Thank you!
is working on a reply...