diff --git a/docs/changelog/132408.yaml b/docs/changelog/132408.yaml new file mode 100644 index 0000000000000..372f5d56fd05b --- /dev/null +++ b/docs/changelog/132408.yaml @@ -0,0 +1,5 @@ +pr: 132408 +summary: Correct exception for missing nested path +area: Search +type: bug +issues: [] diff --git a/server/src/main/java/org/elasticsearch/index/query/NestedQueryBuilder.java b/server/src/main/java/org/elasticsearch/index/query/NestedQueryBuilder.java index 34c5ede62a656..7b557dcfc4db6 100644 --- a/server/src/main/java/org/elasticsearch/index/query/NestedQueryBuilder.java +++ b/server/src/main/java/org/elasticsearch/index/query/NestedQueryBuilder.java @@ -300,7 +300,7 @@ public static Query toQuery( if (ignoreUnmapped) { return new MatchNoDocsQuery(); } else { - throw new IllegalStateException("[" + NAME + "] failed to find nested object under path [" + path + "]"); + throw new QueryShardException(context, "[" + NAME + "] failed to find nested object under path [" + path + "]"); } } final BitSetProducer parentFilter; diff --git a/server/src/test/java/org/elasticsearch/index/query/NestedQueryBuilderTests.java b/server/src/test/java/org/elasticsearch/index/query/NestedQueryBuilderTests.java index 7f4f95cdd2416..6ab936bfab27c 100644 --- a/server/src/test/java/org/elasticsearch/index/query/NestedQueryBuilderTests.java +++ b/server/src/test/java/org/elasticsearch/index/query/NestedQueryBuilderTests.java @@ -294,10 +294,7 @@ public void testIgnoreUnmapped() throws IOException { final NestedQueryBuilder failingQueryBuilder = new NestedQueryBuilder("unmapped", new MatchAllQueryBuilder(), ScoreMode.None); failingQueryBuilder.ignoreUnmapped(false); - IllegalStateException e = expectThrows( - IllegalStateException.class, - () -> failingQueryBuilder.toQuery(createSearchExecutionContext()) - ); + QueryShardException e = expectThrows(QueryShardException.class, () -> failingQueryBuilder.toQuery(createSearchExecutionContext())); assertThat(e.getMessage(), containsString("[" + NestedQueryBuilder.NAME + "] failed to find nested object under path [unmapped]")); }