Skip to content

illegal_state_exception Error retrieving path nested_item inner_hits and top_hits error #136893

@benwtrent

Description

@benwtrent

Elasticsearch Version

Sometime in v8, present in current release

Installed Plugins

No response

Java Version

bundled

OS Version

any

Problem Description

Elasticsearch nested query with inner hits and top-hits aggregation will return illegal_state_exception.

Steps to Reproduce

This might even be able to reduced further, but the single doc with these fields is enough.

DELETE test

PUT test
{
    "mappings": {
        "properties": {
            "nested_item": {
                "type": "nested",
                "properties": {
                    "title": {
                        "type": "text"
                    },
                    "keyword3": {
                        "type": "keyword"
                    },
                    "content": {
                        "type": "text"
                    },
                    "number": {
                        "type": "long"
                    }
                }
            }
        }
    }
}

POST test/_doc
{
    "nested_item": [
        {
            "title": "foo"
        },
        {
            "keyword3": "foobar",
            "title": "foobar",
            "content": "foobar`foobar"
        },
        {
            "title": "baz| barz",
            "content": "foobar`foobar",
            "number": "2"
        }
    ]
}

POST test/_search
{
    "aggregations": {
        "nested_item": {
            "aggregations": {
                "nested_item_filter": {
                    "aggregations": {
                        "0": {
                            "aggregations": {
                                "01": {
                                    "top_hits": {}
                                }
                            },
                            "filter": {
                                "bool": {
                                    "should": []
                                }
                            }
                        }
                    },
                    "filter": {
                        "bool": {
                            "should": []
                        }
                    }
                }
            },
            "nested": {
                "path": "nested_item"
            }
        }
    },
    "query": {
        "nested": {
            "inner_hits": {},
            "path": "nested_item",
            "query": {
                "bool": {
                    "should": []
                }
            }
        }
    }
}

Logs (if relevant)

java.lang.IllegalStateException: Error retrieving path nested_item
  at [email protected]/org.elasticsearch.search.SearchHit$NestedIdentity.extractSource(SearchHit.java:1097)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.prepareNestedHitContext(FetchPhase.java:424)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.prepareHitContext(FetchPhase.java:307)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase$1.nextDoc(FetchPhase.java:214)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhaseDocsIterator.iterate(FetchPhaseDocsIterator.java:90)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.buildSearchHits(FetchPhase.java:248)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.execute(FetchPhase.java:91)
  at [email protected]/org.elasticsearch.search.fetch.subphase.InnerHitsPhase.hitExecute(InnerHitsPhase.java:96)
  at [email protected]/org.elasticsearch.search.fetch.subphase.InnerHitsPhase$1.process(InnerHitsPhase.java:63)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase$1.nextDoc(FetchPhase.java:231)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhaseDocsIterator.iterate(FetchPhaseDocsIterator.java:90)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.buildSearchHits(FetchPhase.java:248)
  at [email protected]/org.elasticsearch.search.fetch.FetchPhase.execute(FetchPhase.java:91)
  at [email protected]/org.elasticsearch.search.aggregations.metrics.TopHitsAggregator.runFetchPhase(TopHitsAggregator.java:245)
  at [email protected]/org.elasticsearch.search.aggregations.metrics.TopHitsAggregator.buildAggregation(TopHitsAggregator.java:201)
  at [email protected]/org.elasticsearch.search.aggregations.metrics.MetricsAggregator.lambda$buildAggregations$0(MetricsAggregator.java:41)
  at [email protected]/org.elasticsearch.search.aggregations.AggregatorBase.buildAggregations(AggregatorBase.java:343)
  at [email protected]/org.elasticsearch.search.aggregations.metrics.MetricsAggregator.buildAggregations(MetricsAggregator.java:41)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildSubAggsForBuckets(BucketsAggregator.java:175)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildAggregationsForFixedBucketCount(BucketsAggregator.java:269)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator.buildAggregations(FiltersAggregator.java:212)
  at [email protected]/org.elasticsearch.search.aggregations.AdaptingAggregator.buildAggregations(AdaptingAggregator.java:103)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildSubAggsForBuckets(BucketsAggregator.java:175)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildAggregationsForFixedBucketCount(BucketsAggregator.java:269)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.filter.FiltersAggregator.buildAggregations(FiltersAggregator.java:212)
  at [email protected]/org.elasticsearch.search.aggregations.AdaptingAggregator.buildAggregations(AdaptingAggregator.java:103)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildSubAggsForBuckets(BucketsAggregator.java:175)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.BucketsAggregator.buildAggregationsForSingleBucket(BucketsAggregator.java:307)
  at [email protected]/org.elasticsearch.search.aggregations.bucket.nested.NestedAggregator.buildAggregations(NestedAggregator.java:129)
  at [email protected]/org.elasticsearch.search.aggregations.Aggregator.buildTopLevel(Aggregator.java:162)
  at [email protected]/org.elasticsearch.search.aggregations.AggregatorCollector.doPostCollection(AggregatorCollector.java:48)
  at [email protected]/org.elasticsearch.search.query.QueryPhaseCollector.doPostCollection(QueryPhaseCollector.java:380)
  at [email protected]/org.elasticsearch.search.internal.ContextIndexSearcher.doAggregationPostCollection(ContextIndexSearcher.java:414)
  at [email protected]/org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:403)
  at [email protected]/org.elasticsearch.search.internal.ContextIndexSearcher.lambda$search$3(ContextIndexSearcher.java:367)
  at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
  at [email protected]/org.apache.lucene.search.TaskExecutor$Task.run(TaskExecutor.java:173)
  at [email protected]/org.apache.lucene.search.TaskExecutor.invokeAll(TaskExecutor.java:111)
  at [email protected]/org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:371)
  at [email protected]/org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:338)
  at [email protected]/org.elasticsearch.search.query.QueryPhase.addCollectorsAndSearch(QueryPhase.java:213)
  at [email protected]/org.elasticsearch.search.query.QueryPhase.executeQuery(QueryPhase.java:143)
  at [email protected]/org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:70)
  at [email protected]/org.elasticsearch.search.SearchService.loadOrExecuteQueryPhase(SearchService.java:700)
  at [email protected]/org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:906)
  at [email protected]/org.elasticsearch.search.SearchService.lambda$executeQueryPhase$7(SearchService.java:739)
  at [email protected]/org.elasticsearch.action.ActionRunnable$3.accept(ActionRunnable.java:79)
  at [email protected]/org.elasticsearch.action.ActionRunnable$3.accept(ActionRunnable.java:76)
  at [email protected]/org.elasticsearch.action.ActionRunnable$4.doRun(ActionRunnable.java:101)
  at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
  at [email protected]/org.elasticsearch.common.util.concurrent.TimedRunnable.doRun(TimedRunnable.java:35)
  at [email protected]/org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:1076)
  at [email protected]/org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:27)
  at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
  at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
  at java.base/java.lang.Thread.run(Thread.java:1474)

Metadata

Metadata

Labels

:Analytics/AggregationsAggregations:Search Relevance/SearchCatch all for Search Relevance>bugTeam:AnalyticsMeta label for analytical engine team (ESQL/Aggs/Geo)Team:Search RelevanceMeta label for the Search Relevance team in Elasticsearchpriority:highA label for assessing bug priority to be used by ES engineers

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions