java.io.IOException: Unable to parse response body for Response

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: org.elasticsearch.common.ParsingException: Failed to parse object: expecting token of type [START_OBJECT] but found [null]
at org.elasticsearch.common.xcontent.XContentParserUtils.parsingException(XContentParserUtils.java:74) ~[elasticsearch-7.14.2.jar:7.14.2]
at org.elasticsearch.common.xcontent.XContentParserUtils.ensureExpectedToken(XContentParserUtils.java:68) ~[elasticsearch-7.14.2.jar:7.14.2]
at org.elasticsearch.action.search.SearchResponse.fromXContent(SearchResponse.java:276) ~[elasticsearch-7.14.2.jar:7.14.2]
at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:2011) ~[elasticsearch-rest-high-level-client-7.14.2.jar:7.14.2]
at org.elasticsearch.client.RestHighLevelClient.lambda$performRequestAndParseEntity$8(RestHighLevelClient.java:1673) ~[elasticsearch-rest-high-level-client-7.14.2.jar:7.14.2]
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1749) ~[elasticsearch-rest-high-level-client-7.14.2.jar:7.14.2]

RestHighClient is occasionally throwing errors. What could be the reason? Is it related to the versions of Jackson and HTTP?

Welcome!

Hard to tell without more details like the code used.
But, 7.14 is too old anyway and we have a newer and better client now.

You should upgrade Elasticsearch server to at least 8.x or better to 9.x and switch to the new client.

Thanks for your reply. Our project uses RestHighLevelTemplate extensively, and upgrading would be too costly.

(Additional stack trace information)

java.io.IOException: Unable to parse response body for Response{requestLine=POST /store_consume_v2/_search?typed_keys=true&max_concurrent_shard_requests=5&ignore_unavailable=false&expand_wildcards=open&allow_no_indices=true&ignore_throttled=true&search_type=query_then_fetch&batched_reduce_size=512 HTTP/1.1, host=http://*.*.*.*:19200, response=HTTP/1.1 200 OK}
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1751) ~[elasticsearch-rest-high-level-client-7.14.2.jar:7.14.2]
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1702) ~[elasticsearch-rest-high-level-client-7.14.2.jar:7.14.2]
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1672) ~[elasticsearch-rest-high-level-client-7.14.2.jar:7.14.2]
at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:1128) ~[elasticsearch-rest-high-level-client-7.14.2.jar:7.14.2]
at java.lang.Thread.run(Thread.java:829) [?:?]
Caused by: org.elasticsearch.common.ParsingException: Failed to parse object: expecting token of type [START_OBJECT] but found [null]
at org.elasticsearch.common.xcontent.XContentParserUtils.parsingException(XContentParserUtils.java:74) ~[elasticsearch-7.14.2.jar:7.14.2]
at org.elasticsearch.common.xcontent.XContentParserUtils.ensureExpectedToken(XContentParserUtils.java:68) ~[elasticsearch-7.14.2.jar:7.14.2]
at org.elasticsearch.action.search.SearchResponse.fromXContent(SearchResponse.java:276) ~[elasticsearch-7.14.2.jar:7.14.2]
at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:2011) ~[elasticsearch-rest-high-level-client-7.14.2.jar:7.14.2]
at org.elasticsearch.client.RestHighLevelClient.lambda$performRequestAndParseEntity$8(RestHighLevelClient.java:1673) ~[elasticsearch-rest-high-level-client-7.14.2.jar:7.14.2]
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1749) ~[elasticsearch-rest-high-level-client-7.14.2.jar:7.14.2]

What is the Elasticsearch server version?

The version is also 7.14.2.

This version is 4+ years old. At the very least, upgrade everything to 7.17.29 which has been released 6 months ago. But it's not maintained anymore. Consider 8.19.9 or better 9.2.3.

May be. But I'd use something stable instead of taking risk of running an outdated version.
And anyway, you will have to do the upgrade at some point...

Anyway, to solve the problem, I'd try to print what is the exact json query sent to Elasticsearch and try to run it from Kibana. To see what is the error about.

1 Like

This is an intermittent issue; I couldn't reproduce it by running it on Kibana.