Closed
Description
NEST/Elasticsearch.Net version: 7.4.0
Elasticsearch version: 7.4.0
Description of the problem including expected versus actual behavior:
Upgrading from 6.8 to 7.4 our aggregations stopped working in some cases. Getting an Elasticsearch.Net.UnexpectedElasticsearchClientException with message expected:'String Begin Token', actual:']'.
This problem seems to be related to #3673 .
Steps to reproduce:
- Index a document with a date field:
client.Index(new Doc { ModificationDate = DateTime.Parse("2019-10-09T10:43:07.8633456+02:00") }, i => i.Index("pptest-collections"));
- Run search with aggregations:
client.Search<Doc>(s => s
.Index("pptest-collections")
.Aggregations(
a => a.Filters("Modification date",
f => f
.AnonymousFilters(
q => q.DateRange(dr => dr.Field(d => d.ModificationDate)
.GreaterThan(DateMath.Now.Subtract(TimeSpan.FromDays(120))))
)))
);
Provide DebugInformation
(if relevant):
- [1] BadResponse: Node: http://localhost:9200/ Exception: JsonParsingException Took: 00:00:00.2654590
# Audit exception in step 1 BadResponse:
Elasticsearch.Net.Utf8Json.JsonParsingException: expected:'String Begin Token', actual:']', at offset:241
at Elasticsearch.Net.Utf8Json.JsonReader.ReadStringSegmentCore(Byte[]& resultBytes, Int32& resultOffset, Int32& resultLength)
at Elasticsearch.Net.Utf8Json.JsonReader.ReadString()
at Elasticsearch.Net.Utf8Json.JsonReader.ReadPropertyName()
at Nest.AggregateFormatter.GetFiltersBucket(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Nest.AggregateFormatter.ReadBucket(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Nest.AggregateFormatter.GetMultiBucketAggregate(JsonReader& reader, IJsonFormatterResolver formatterResolver, ArraySegment`1& propertyName, IReadOnlyDictionary`2 meta)
at Nest.AggregateFormatter.ReadAggregate(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Nest.AggregateFormatter.Deserialize(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Nest.AggregateDictionaryFormatter.ParseAggregate(JsonReader& reader, IJsonFormatterResolver formatterResolver, String name, Dictionary`2 dictionary)
at Nest.AggregateDictionaryFormatter.ReadAggregate(JsonReader& reader, IJsonFormatterResolver formatterResolver, String[] tokens, Dictionary`2 dictionary)
at Nest.AggregateDictionaryFormatter.Deserialize(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Deserialize(Object[] , JsonReader& , IJsonFormatterResolver )
at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1.Deserialize(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Elasticsearch.Net.Utf8Json.JsonSerializer.Deserialize[T](Byte[] bytes, Int32 offset, IJsonFormatterResolver resolver)
at Elasticsearch.Net.Utf8Json.JsonSerializer.Deserialize[T](Byte[] bytes, IJsonFormatterResolver resolver)
at Elasticsearch.Net.Utf8Json.JsonSerializer.Deserialize[T](Stream stream, IJsonFormatterResolver resolver)
at Nest.DefaultHighLevelSerializer.Deserialize[T](Stream stream)
at Elasticsearch.Net.DiagnosticsSerializerProxy.Deserialize[T](Stream stream)
at Elasticsearch.Net.ResponseBuilder.SetBody[TResponse](ApiCallDetails details, RequestData requestData, Stream responseStream, String mimeType)
at Elasticsearch.Net.ResponseBuilder.ToResponse[TResponse](RequestData requestData, Exception ex, Nullable`1 statusCode, IEnumerable`1 warnings, Stream responseStream, String mimeType)
at Elasticsearch.Net.HttpConnection.Request[TResponse](RequestData requestData)
at Elasticsearch.Net.RequestPipeline.CallElasticsearch[TResponse](RequestData requestData)
at Elasticsearch.Net.Transport`1.Request[TResponse](HttpMethod method, String path, PostData data, IRequestParameters requestParameters)
# Inner Exception: expected:'String Begin Token', actual:']', at offset:241
Elasticsearch.Net.Utf8Json.JsonParsingException: expected:'String Begin Token', actual:']', at offset:241
at Elasticsearch.Net.Utf8Json.JsonReader.ReadStringSegmentCore(Byte[]& resultBytes, Int32& resultOffset, Int32& resultLength)
at Elasticsearch.Net.Utf8Json.JsonReader.ReadString()
at Elasticsearch.Net.Utf8Json.JsonReader.ReadPropertyName()
at Nest.AggregateFormatter.GetFiltersBucket(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Nest.AggregateFormatter.ReadBucket(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Nest.AggregateFormatter.GetMultiBucketAggregate(JsonReader& reader, IJsonFormatterResolver formatterResolver, ArraySegment`1& propertyName, IReadOnlyDictionary`2 meta)
at Nest.AggregateFormatter.ReadAggregate(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Nest.AggregateFormatter.Deserialize(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Nest.AggregateDictionaryFormatter.ParseAggregate(JsonReader& reader, IJsonFormatterResolver formatterResolver, String name, Dictionary`2 dictionary)
at Nest.AggregateDictionaryFormatter.ReadAggregate(JsonReader& reader, IJsonFormatterResolver formatterResolver, String[] tokens, Dictionary`2 dictionary)
at Nest.AggregateDictionaryFormatter.Deserialize(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Deserialize(Object[] , JsonReader& , IJsonFormatterResolver )
at Elasticsearch.Net.Utf8Json.Resolvers.DynamicMethodAnonymousFormatter`1.Deserialize(JsonReader& reader, IJsonFormatterResolver formatterResolver)
at Elasticsearch.Net.Utf8Json.JsonSerializer.Deserialize[T](Byte[] bytes, Int32 offset, IJsonFormatterResolver resolver)
at Elasticsearch.Net.Utf8Json.JsonSerializer.Deserialize[T](Byte[] bytes, IJsonFormatterResolver resolver)
at Elasticsearch.Net.Utf8Json.JsonSerializer.Deserialize[T](Stream stream, IJsonFormatterResolver resolver)
at Nest.DefaultHighLevelSerializer.Deserialize[T](Stream stream)
at Elasticsearch.Net.DiagnosticsSerializerProxy.Deserialize[T](Stream stream)
at Elasticsearch.Net.ResponseBuilder.SetBody[TResponse](ApiCallDetails details, RequestData requestData, Stream responseStream, String mimeType)
at Elasticsearch.Net.ResponseBuilder.ToResponse[TResponse](RequestData requestData, Exception ex, Nullable`1 statusCode, IEnumerable`1 warnings, Stream responseStream, String mimeType)
at Elasticsearch.Net.HttpConnection.Request[TResponse](RequestData requestData)
at Elasticsearch.Net.RequestPipeline.CallElasticsearch[TResponse](RequestData requestData)
at Elasticsearch.Net.Transport`1.Request[TResponse](HttpMethod method, String path, PostData data, IRequestParameters requestParameters)
Metadata
Metadata
Assignees
Labels
No labels