Skip to content

[es/indices.recovery] Missing required property 'ShardRecovery.stopTimeInMillis' #202

@synox

Description

@synox

Java API client version

7.16.2

Java version

java 11.0.14 2022-01-18 LTS

Elasticsearch Version

7.16.2

Problem description

code:

 RecoveryResponse response = client .indices() .recovery(r -> r .index(indexNames)); response.result().values();

Error:

Caused by: co.elastic.clients.util.MissingRequiredPropertyException: Missing required property 'ShardRecovery.stopTimeInMillis' at co.elastic.clients.util.ApiTypeHelper.requireNonNull(ApiTypeHelper.java:76) at co.elastic.clients.elasticsearch.indices.recovery.ShardRecovery.<init>(ShardRecovery.java:102) at co.elastic.clients.elasticsearch.indices.recovery.ShardRecovery.<init>(ShardRecovery.java:52) at co.elastic.clients.elasticsearch.indices.recovery.ShardRecovery$Builder.build(ShardRecovery.java:523) at co.elastic.clients.elasticsearch.indices.recovery.ShardRecovery$Builder.build(ShardRecovery.java:307) at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:86) at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:48) at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:320) at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:285) at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75) at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:72) at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:176) at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:137) at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75) at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79) at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43) at co.elastic.clients.transport.endpoints.DictionaryResponse.lambda$setupDictionaryResponseDeserializer$0(DictionaryResponse.java:148) at co.elastic.clients.json.ObjectDeserializer.parseUnknownField(ObjectDeserializer.java:205) at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:174) at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:137) at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:75) at co.elastic.clients.json.ObjectBuilderDeserializer.deserialize(ObjectBuilderDeserializer.java:79) at co.elastic.clients.json.DelegatingDeserializer$SameType.deserialize(DelegatingDeserializer.java:43) at co.elastic.clients.transport.rest_client.RestClientTransport.decodeResponse(RestClientTransport.java:325) at co.elastic.clients.transport.rest_client.RestClientTransport.getHighLevelResponse(RestClientTransport.java:291) at co.elastic.clients.transport.rest_client.RestClientTransport.performRequest(RestClientTransport.java:144) at co.elastic.clients.elasticsearch.indices.ElasticsearchIndicesClient.recovery(ElasticsearchIndicesClient.java:1619) at co.elastic.clients.elasticsearch.indices.ElasticsearchIndicesClient.recovery(ElasticsearchIndicesClient.java:1635)

Notes

Spec shows ShardRecovery.stop_time_in_millis to be mandatory. (https://github.com/elastic/elasticsearch-specification/blob/main/specification/indices/recovery/types.ts#L120)

And that is how it is implemented:

this.stopTimeInMillis = ApiTypeHelper.requireNonNull(builder.stopTimeInMillis, this, "stopTimeInMillis");

However ES server v7.16.2 does not include the field. It might be because the restore was in progress.

cc: @fabriziofortino

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: SpecificationRelated to the API spec used to generate client code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions