# Unknown field \[has\_parent\] while parsing valid query using XContentParser

**URL:** <https://discuss.elastic.co/t/unknown-field-has-parent-while-parsing-valid-query-using-xcontentparser/272210>\
**Category:** Elasticsearch\
**Created:** [May 5, 2021, 2:53pm UTC](https://discuss.elastic.co/t/unknown-field-has-parent-while-parsing-valid-query-using-xcontentparser/272210 "2021-05-05T14:53:48Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![avj](https://avatars.discourse-cdn.com/v4/letter/a/a88e57/32.png) [@avj](https://discuss.elastic.co/u/avj)\
**Post date:** [May 5, 2021, 2:53pm UTC](https://discuss.elastic.co/t/unknown-field-has-parent-while-parsing-valid-query-using-xcontentparser/272210/1 "2021-05-05T14:53:48Z")

</div>

ES 7.7.0, Getting the following exception, although "has\_parent" query is valid and works in ES index, getting an exception when trying to parse using ES parser API

Output :

```auto
ssb = {"query":{"term":{"_tenant_id":{"value":"working","boost":1.0}}}}
Exception in thread "main" org.elasticsearch.common.xcontent.XContentParseException: [1:41] [bool] failed to parse field [must]
    at org.elasticsearch.common.xcontent.ObjectParser.parseValue(ObjectParser.java:510)
    at org.elasticsearch.common.xcontent.ObjectParser.parseArray(ObjectParser.java:502)
    at org.elasticsearch.common.xcontent.ObjectParser.parseSub(ObjectParser.java:534)
    at org.elasticsearch.common.xcontent.ObjectParser.parse(ObjectParser.java:319)
    at org.elasticsearch.common.xcontent.ObjectParser.parse(ObjectParser.java:251)
    at org.elasticsearch.index.query.BoolQueryBuilder.fromXContent(BoolQueryBuilder.java:297)
    at org.elasticsearch.search.SearchModule.lambda$registerQuery$14(SearchModule.java:871)
    at org.elasticsearch.common.xcontent.NamedXContentRegistry.parseNamedObject(NamedXContentRegistry.java:140)
    at org.elasticsearch.common.xcontent.support.AbstractXContentParser.namedObject(AbstractXContentParser.java:385)
    at org.elasticsearch.index.query.AbstractQueryBuilder.parseInnerQueryBuilder(AbstractQueryBuilder.java:317)
    at org.elasticsearch.search.builder.SearchSourceBuilder.parseXContent(SearchSourceBuilder.java:1098)
    at org.elasticsearch.search.builder.SearchSourceBuilder.parseXContent(SearchSourceBuilder.java:1036)
    at QMain.main(QMain.java:34)
Caused by: ParsingException[unknown query [has_parent]]; nested: NamedObjectNotFoundException[[1:41] unknown field [has_parent]];
    at org.elasticsearch.index.query.AbstractQueryBuilder.parseInnerQueryBuilder(AbstractQueryBuilder.java:321)
    at org.elasticsearch.index.query.BoolQueryBuilder.lambda$static$1(BoolQueryBuilder.java:281)
    at org.elasticsearch.common.xcontent.AbstractObjectParser.lambda$declareObjectArray$10(AbstractObjectParser.java:237)
    at org.elasticsearch.common.xcontent.AbstractObjectParser.lambda$declareFieldArray$16(AbstractObjectParser.java:265)
    at org.elasticsearch.common.xcontent.AbstractObjectParser.parseArray(AbstractObjectParser.java:357)
    at org.elasticsearch.common.xcontent.AbstractObjectParser.lambda$declareFieldArray$17(AbstractObjectParser.java:265)
    at org.elasticsearch.common.xcontent.ObjectParser.lambda$declareField$9(ObjectParser.java:381)
    at org.elasticsearch.common.xcontent.ObjectParser.parseValue(ObjectParser.java:508)
    ... 12 more
Caused by: org.elasticsearch.common.xcontent.NamedObjectNotFoundException: [1:41] unknown field [has_parent]
    at org.elasticsearch.common.xcontent.NamedXContentRegistry.parseNamedObject(NamedXContentRegistry.java:132)
    at org.elasticsearch.common.xcontent.support.AbstractXContentParser.namedObject(AbstractXContentParser.java:385)
    at org.elasticsearch.index.query.AbstractQueryBuilder.parseInnerQueryBuilder(AbstractQueryBuilder.java:317)
    ... 19 more

```

Java code to reproduce issue:

```auto
        SearchSourceBuilder ssb = new SearchSourceBuilder();
        String query = null;
        String working = "{\"query\":{\"term\":{\"_tenant_id\":\"working\"}}}";
        String notWorking = "{\"query\":{\"bool\":{\"must\":[{\"has_parent\":{\"query\":{\"match_all\":{}},\"parent_type\":\"event_parent\"}}]}}}";

//query = working;
// Not working
        query = notWorking;
        SearchModule searchModule1 = new SearchModule(Settings.EMPTY, false, Collections.emptyList());
        XContentParser parser1 = XContentFactory.xContent(XContentType.JSON).createParser(
                new NamedXContentRegistry(searchModule1.getNamedXContents()),
                DeprecationHandler.THROW_UNSUPPORTED_OPERATION, query);
        ssb.parseXContent(parser1);
        System.out.println("ssb = " + ssb.toString());

```

---

<div class="post-metadata">

**Author:** ![dadoonet](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/dadoonet/32/137187_2.png) [@dadoonet](https://discuss.elastic.co/u/dadoonet)\
**Post date:** [May 5, 2021, 5:34pm UTC](https://discuss.elastic.co/t/unknown-field-has-parent-while-parsing-valid-query-using-xcontentparser/272210/2 "2021-05-05T17:34:55Z")

</div>

Welcome!

Could you provide a full recreation script as described in [About the Elasticsearch category](https://discuss.elastic.co/t/about-the-elasticsearch-category/21). It will help to better understand what you are doing. Please, try to keep the example as simple as possible.

A full reproduction script is something anyone can **copy and paste in Kibana dev console** , click on the run button to reproduce your use case. It will help readers to understand, reproduce and if needed fix your problem. It will also most likely help to get a faster answer.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [June 2, 2021, 5:35pm UTC](https://discuss.elastic.co/t/unknown-field-has-parent-while-parsing-valid-query-using-xcontentparser/272210/3 "2021-06-02T17:35:27Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
