Skip to content

5.0 RC1 - Copy_to serialization issues. #2409

@niemyjski

Description

@niemyjski

I'm still trying to get to the bottom of this issue but my app is unable to deserialize the mappings.

I get the following error

at Elasticsearch.Net.Transport`1.Request[TReturn](HttpMethod method, String path, PostData`1 data, IRequestParameters requestParameters) in C:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Transport.cs:line 93
   at Elasticsearch.Net.ElasticLowLevelClient.DoRequest[T](HttpMethod method, String path, PostData`1 data, IRequestParameters requestParameters) in C:\code\elasticsearch-net\src\Elasticsearch.Net\ElasticLowLevelClient.cs:line 61
   at Elasticsearch.Net.ElasticLowLevelClient.IndicesGetMapping[T](String index, String type, Func`2 requestParameters) in C:\code\elasticsearch-net\src\Elasticsearch.Net\ElasticLowLevelClient.Generated.cs:line 3560
   at Nest.LowLevelDispatch.IndicesGetMappingDispatch[T](IRequest`1 p) in C:\code\elasticsearch-net\src\Nest\_Generated\_LowLevelDispatch.generated.cs:line 1611
   at Nest.ElasticClient.<GetMapping>b__334_1(IGetMappingRequest p, PostData`1 d) in C:\code\elasticsearch-net\src\Nest\Indices\MappingManagement\GetMapping\ElasticClient-GetMapping.cs:line 43
   at Nest.ElasticClient.Nest.IHighLevelToLowLevelDispatcher.Dispatch[TRequest,TQueryString,TResponse](TRequest request, Func`3 responseGenerator, Func`3 dispatch) in C:\code\elasticsearch-net\src\Nest\ElasticClient.cs:line 57
   at Nest.ElasticClient.GetMapping(IGetMappingRequest request) in C:\code\elasticsearch-net\src\Nest\Indices\MappingManagement\GetMapping\ElasticClient-GetMapping.cs:line 40
   at Foundatio.Parsers.ElasticQueries.ElasticQueryParserConfigurationExtensions.<>c__DisplayClass0_0`1.<UseMappings>b__1() in C:\projects\foundatio-repositories\src\Foundatio.Repositories.Elasticsearch\Extensions\ElasticQueryParserConfigurationExtensions.cs:line 17
   at Foundatio.Parsers.ElasticQueries.ElasticQueryParserConfiguration.UpdateMapping()
   at Foundatio.Parsers.ElasticQueries.ElasticQueryParserConfiguration.GetMappingProperty(String field)
   at Foundatio.Parsers.ElasticQueries.Visitors.ElasticQueryVisitorContextExtensions.GetPropertyMapping(IElasticQueryVisitorContext context, String field)
   at Foundatio.Parsers.ElasticQueries.Visitors.ElasticQueryVisitorContextExtensions.GetNonAnalyzedFieldName(IElasticQueryVisitorContext context, String field)
   at Foundatio.Parsers.ElasticQueries.Visitors.GetSortFieldsVisitor.Visit(TermNode node, IQueryVisitorContext context)
   at Foundatio.Parsers.LuceneQueries.Visitors.QueryNodeVisitorBase.VisitAsync(TermNode node, IQueryVisitorContext context)
   at Foundatio.Parsers.LuceneQueries.Visitors.QueryNodeVisitorBase.VisitAsync(IQueryNode node, IQueryVisitorContext context)
   at Foundatio.Parsers.LuceneQueries.Visitors.QueryNodeVisitorBase.<VisitAsync>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 Foundatio.Parsers.ElasticQueries.Visitors.GetSortFieldsVisitor.<AcceptAsync>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 Foundatio.Parsers.ElasticQueries.ElasticQueryParser.<BuildSortAsync>d__8.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.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Foundatio.Repositories.Elasticsearch.Queries.Builders.ParsedSearchQueryBuilder.<BuildAsync>d__2`1.MoveNext() in C:\projects\foundatio-repositories\src\Foundatio.Repositories.Elasticsearch\Queries\Builders\SearchQueryBuilder.cs:line 135
--- 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 Foundatio.Repositories.Elasticsearch.Queries.Builders.ElasticQueryBuilder.<BuildAsync>d__10`1.MoveNext() in C:\projects\foundatio-repositories\src\Foundatio.Repositories.Elasticsearch\Queries\Builders\ElasticQueryBuilder.cs:line 89
--- 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 Foundatio.Repositories.Elasticsearch.Queries.Builders.ElasticQueryBuilderExtensions.<BuildQueryAsync>d__0`1.MoveNext() in C:\projects\foundatio-repositories\src\Foundatio.Repositories.Elasticsearch\Queries\Builders\IElasticQueryBuilder.cs:line 52
--- 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 Foundatio.Repositories.Elasticsearch.Queries.Builders.ElasticQueryBuilderExtensions.<ConfigureSearchAsync>d__1`1.MoveNext() in C:\projects\foundatio-repositories\src\Foundatio.Repositories.Elasticsearch\Queries\Builders\IElasticQueryBuilder.cs:line 64
--- 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 Foundatio.Repositories.Elasticsearch.ElasticReadOnlyRepositoryBase`1.<ConfigureSearchDescriptorAsync>d__39.MoveNext() in C:\projects\foundatio-repositories\src\Foundatio.Repositories.Elasticsearch\Repositories\ElasticReadOnlyRepositoryBase.cs:line 435
--- 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.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   at Foundatio.Repositories.Elasticsearch.ElasticReadOnlyRepositoryBase`1.<FindAsAsync>d__15`1.MoveNext() in C:\projects\foundatio-repositories\src\Foundatio.Repositories.Elasticsearch\Repositories\ElasticReadOnlyRepositoryBase.cs:line 101
--- 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.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Exceptionless.Api.Tests.Repositories.EventIndexTests.<GetByFilterAsync>d__43.MoveNext() in C:\Code\Exceptionless\tests\Exceptionless.Api.Tests\Search\EventIndexTests.cs:line 462
--- 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.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Exceptionless.Api.Tests.Repositories.EventIndexTests.<GetByBotAsync>d__31.MoveNext() in C:\Code\Exceptionless\tests\Exceptionless.Api.Tests\Search\EventIndexTests.cs:line 328
--- 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)
--- 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)
--- 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)
----- Inner Stack Trace -----
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateNewList(JsonReader reader, JsonArrayContract contract, Boolean& createdFromNonDefaultCreator)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateList(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, Object existingValue, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType, JsonSerializer jsonSerializer)
   at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType)
   at Newtonsoft.Json.Linq.JToken.ToObject[T]()
   at Nest.PropertyJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in C:\code\elasticsearch-net\src\Nest\Mapping\Types\PropertyJsonConverter.cs:line 30
   at Nest.PropertiesJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in C:\code\elasticsearch-net\src\Nest\Mapping\Types\PropertiesJsonConverter.cs:line 50
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType, JsonSerializer jsonSerializer)
   at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType)
   at Newtonsoft.Json.Linq.JToken.ToObject[T]()
   at Nest.PropertyJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in C:\code\elasticsearch-net\src\Nest\Mapping\Types\PropertyJsonConverter.cs:line 30
   at Nest.PropertiesJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in C:\code\elasticsearch-net\src\Nest\Mapping\Types\PropertiesJsonConverter.cs:line 50
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType, JsonSerializer jsonSerializer)
   at Newtonsoft.Json.Linq.JToken.ToObject(Type objectType)
   at Newtonsoft.Json.Linq.JToken.ToObject[T]()
   at Nest.PropertyJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in C:\code\elasticsearch-net\src\Nest\Mapping\Types\PropertyJsonConverter.cs:line 30
   at Nest.PropertiesJsonConverter.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in C:\code\elasticsearch-net\src\Nest\Mapping\Types\PropertiesJsonConverter.cs:line 50
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Populate(JsonReader reader, Object target)
   at Newtonsoft.Json.Serialization.JsonSerializerProxy.PopulateInternal(JsonReader reader, Object target)
   at Nest.FromJson.ReadAs[T](JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in C:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\GenericJsonConverters\FromJson.cs:line 14
   at Nest.ReadAsTypeJsonConverter`1.ReadJson(JsonReader reader, Type objectType, Object existingValue, JsonSerializer serializer) in C:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\GenericJsonConverters\ReadAsTypeJsonConverter.cs:line 19
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.DeserializeConvertable(JsonConverter converter, JsonReader reader, Type objectType, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
   at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
   at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
   at Nest.JsonNetSerializer.Deserialize[T](Stream stream) in C:\code\elasticsearch-net\src\Nest\CommonAbstractions\SerializationBehavior\JsonNetSerializer.cs:line 114
   at Nest.ElasticClient.DeserializeGetMappingResponse(IApiCallDetails response, IGetMappingRequest d, Stream stream) in C:\code\elasticsearch-net\src\Nest\Indices\MappingManagement\GetMapping\ElasticClient-GetMapping.cs:line 62
   at Nest.ElasticClient.<>c__DisplayClass334_0.<GetMapping>b__0(IApiCallDetails r, Stream s) in C:\code\elasticsearch-net\src\Nest\Indices\MappingManagement\GetMapping\ElasticClient-GetMapping.cs:line 42
   at Elasticsearch.Net.ResponseBuilder`1.SetBody(ElasticsearchResponse`1 response, Stream stream) in C:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\ResponseBuilder.cs:line 78
   at Elasticsearch.Net.ResponseBuilder`1.ToResponse() in C:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\ResponseBuilder.cs:line 31
   at Elasticsearch.Net.HttpConnection.Request[TReturn](RequestData requestData) in C:\code\elasticsearch-net\src\Elasticsearch.Net\Connection\HttpConnection.cs:line 153
   at Elasticsearch.Net.RequestPipeline.CallElasticsearch[TReturn](RequestData requestData) in C:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Pipeline\RequestPipeline.cs:line 411
   at Elasticsearch.Net.Transport`1.Request[TReturn](HttpMethod method, String path, PostData`1 data, IRequestParameters requestParameters) in C:\code\elasticsearch-net\src\Elasticsearch.Net\Transport\Transport.cs:line 69


Result Message:	
Elasticsearch.Net.UnexpectedElasticsearchClientException : Cannot create and populate list type Nest.Fields. Path 'copy_to', line 1, position 238.
---- Newtonsoft.Json.JsonSerializationException : Cannot create and populate list type Nest.Fields. Path 'copy_to', line 1, position 238.

GET http://127.0.0.1:9200/test-events/_mapping/events

{"test-events-v1-201412":{"mappings":{"events":{"dynamic":"false","_size":{"enabled":true},"properties":{"created_utc":{"type":"date"},"data":{"properties":{"@environment":{"properties":{"o_s_name":{"type":"text","index":false,"copy_to":["os"]}}}}},"id":{"type":"keyword"},"os":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}},"test-events-v1-201502":{"mappings":{"events":{"dynamic":"false","_size":{"enabled":true},"properties":{"created_utc":{"type":"date"},"data":{"properties":{"@environment":{"properties":{"o_s_name":{"type":"text","index":false,"copy_to":["os"]}}}}},"id":{"type":"keyword"},"os":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions