You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hey! I'm running into a MissingRequiredPropertyException when trying to execute a ForceMerge request with wait_for_completion set to false.
This code execution:
co.elastic.clients.transport.TransportException: node: https://localhost:9200/, status: 200, [es/indices.forcemerge] Failed to decode response
at co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:404)
at co.elastic.clients.transport.ElasticsearchTransportBase.getApiResponse(ElasticsearchTransportBase.java:363)
at co.elastic.clients.transport.ElasticsearchTransportBase.performRequest(ElasticsearchTransportBase.java:147)
at co.elastic.clients.elasticsearch.indices.ElasticsearchIndicesClient.forcemerge(ElasticsearchIndicesClient.java:937)
at co.elastic.clients.elasticsearch.indices.ElasticsearchIndicesClient.forcemerge(ElasticsearchIndicesClient.java:953)
at ElasticsearchClientServer.main(ElasticsearchClientServer.java:98)
Caused by: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'ForcemergeResponse.shards'
at co.elastic.clients.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:76)
at co.elastic.clients.elasticsearch._types.ShardsOperationResponseBase.<init>(ShardsOperationResponseBase.java:68)
at co.elastic.clients.elasticsearch.indices.forcemerge.ForceMergeResponseBody.<init>(ForceMergeResponseBody.java:66)
at co.elastic.clients.elasticsearch.indices.ForcemergeResponse.<init>(ForcemergeResponse.java:59)
at co.elastic.clients.elasticsearch.indices.ForcemergeResponse.<init>(ForcemergeResponse.java:55)
at co.elastic.clients.elasticsearch.indices.ForcemergeResponse$Builder.build(ForcemergeResponse.java:90)
at co.elastic.clients.elasticsearch.indices.ForcemergeResponse$Builder.build(ForcemergeResponse.java:73)
at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:80)
at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43)
at co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:399)
... 5 more
whereas if I set waitForCompletion to true, the java client is able to parse the response back from server correctly:
This might be happening because based on the API spec, ForcemergeResponse extends ShardsOperationResponseBase which requires _shardto always be present in raw JSON response, which is not the case when wait_for_completion is set to true. In that case, we receive the optional parameter task as pointed in the docs as well.
The text was updated successfully, but these errors were encountered:
Java API client version
8.15.1
Java version
17
Elasticsearch Version
8.15.1
Problem description
Hey! I'm running into a
MissingRequiredPropertyException
when trying to execute a ForceMerge request withwait_for_completion
set tofalse
.This code execution:
throws with this detailed stack trace:
whereas if I set
waitForCompletion
totrue
, the java client is able to parse the response back from server correctly:This might be happening because based on the API spec,
ForcemergeResponse
extendsShardsOperationResponseBase
which requires_shard
to always be present in raw JSON response, which is not the case whenwait_for_completion
is set to true. In that case, we receive the optional parametertask
as pointed in the docs as well.The text was updated successfully, but these errors were encountered: