# Error while getting SLM Stats from the Java Client

**URL:** <https://discuss.elastic.co/t/error-while-getting-slm-stats-from-the-java-client/378919>\
**Category:** Elasticsearch\
**Tags:** language-clients\
**Created:** [June 5, 2025, 1:25pm UTC](https://discuss.elastic.co/t/error-while-getting-slm-stats-from-the-java-client/378919 "2025-06-05T13:25:24Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![BenjaminD](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/benjamind/32/4866_2.png) [@BenjaminD](https://discuss.elastic.co/u/BenjaminD)\
**Post date:** [June 5, 2025, 1:25pm UTC](https://discuss.elastic.co/t/error-while-getting-slm-stats-from-the-java-client/378919/1 "2025-06-05T13:25:24Z")

</div>

Hi everyone.  
I'm using the Java client to handle some functionalities in my cluster.  
With the ElasticsearchSlmClient, I can create a policy and run it.

But when I try to run  
`slmClient.getStats();`  
I have the following error :

```auto
java.lang.RuntimeException: co.elastic.clients.transport.TransportException: node: https://my-cluster-address:9243/, status: 200, [es/slm.get_stats] Failed to decode response

	at com.adelean.eaas.services.SnapshotsManagement.getStats(SnapshotsManagement.java:70)
	at com.adelean.eaas.services.SnapshotsManagementTest.getStats(SnapshotsManagementTest.java:69)
	at java.base/java.lang.reflect.Method.invoke(Method.java:580)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
Caused by: co.elastic.clients.transport.TransportException: node: https://my-cluster-address:9243/, status: 200, [es/slm.get_stats] Failed to decode response
	at co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:417)
	at co.elastic.clients.transport.ElasticsearchTransportBase.getApiResponse(ElasticsearchTransportBase.java:375)
	at co.elastic.clients.transport.ElasticsearchTransportBase.performRequest(ElasticsearchTransportBase.java:141)
	at co.elastic.clients.elasticsearch.slm.ElasticsearchSlmClient.getStats(ElasticsearchSlmClient.java:300)
	at com.adelean.eaas.services.SnapshotsManagement.getStats(SnapshotsManagement.java:68)
	... 4 more
Caused by: co.elastic.clients.json.JsonpMappingException: Error deserializing co.elastic.clients.elasticsearch.slm.GetStatsResponse: co.elastic.clients.json.UnexpectedJsonEventException: Unexpected JSON event 'START_OBJECT' instead of '[KEY_NAME, VALUE_STRING, VALUE_NUMBER, VALUE_TRUE, VALUE_FALSE]' (JSON path: policy_stats[0]) (line no=1, column no=276, offset=-1)
	at co.elastic.clients.json.JsonpMappingException.from0(JsonpMappingException.java:134)
	at co.elastic.clients.json.JsonpMappingException.from(JsonpMappingException.java:125)
	at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:322)
	at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:280)
	at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
	at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78)
	at co.elastic.clients.json.ObjectDeserializer.deserializeInner(ObjectDeserializer.java:214)
	at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:166)
	at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:157)
	at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
	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.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:412)
	... 8 more
Caused by: co.elastic.clients.json.UnexpectedJsonEventException: Unexpected JSON event 'START_OBJECT' instead of '[KEY_NAME, VALUE_STRING, VALUE_NUMBER, VALUE_TRUE, VALUE_FALSE]'
	at co.elastic.clients.json.JsonpUtils.ensureAccepts(JsonpUtils.java:117)
	at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:317)
	... 18 more

```

I'm working with the 8.18.1 client.

---

<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:** [June 5, 2025, 2:38pm UTC](https://discuss.elastic.co/t/error-while-getting-slm-stats-from-the-java-client/378919/2 "2025-06-05T14:38:42Z")

</div>

Hey @ltrotta

Could you check this please?

---

<div class="post-metadata">

**Author:** ![ltrotta](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/ltrotta/32/124003_2.png) [@ltrotta](https://discuss.elastic.co/u/ltrotta)\
**Post date:** [June 5, 2025, 3:16pm UTC](https://discuss.elastic.co/t/error-while-getting-slm-stats-from-the-java-client/378919/3 "2025-06-05T15:16:13Z")

</div>

Hello!  
Thank you for reporting this, it's an[api specification](https://github.com/elastic/elasticsearch-specification) bug, so it's currently affecting all clients, Java included. We mapped `policy_stats` wrongly, as an array of strings while the correct type is an array of specific objects. We'll fix this asap and regenerate the client to fix the issue, if you'd like to track this effort you can open a new issue in the [java client repo](https://github.com/elastic/elasticsearch-java).  
Thanks again!

---

<div class="post-metadata">

**Author:** ![BenjaminD](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/benjamind/32/4866_2.png) [@BenjaminD](https://discuss.elastic.co/u/BenjaminD)\
**Post date:** [June 5, 2025, 3:21pm UTC](https://discuss.elastic.co/t/error-while-getting-slm-stats-from-the-java-client/378919/4 "2025-06-05T15:21:45Z")

</div>

I just created an issue to keep an eye on it.

Thanks for your answer.

> <https://github.com/elastic/elasticsearch-java/issues/1021>
>
> \### Java API client version
> 
> 8.18.1
> 
> \### Java version
> 
> 21
> 
> \### Elasticsearch Ver…sion
> 
> 8.18.1
> 
> \### Problem description
> 
> Hi.
> I'm using the Java client to handle some functionalities in my cluster.
> With the ElasticsearchSlmClient, I can create a policy and run it.
> 
> But when I try to run
> \`slmClient.getStats();\`
> I have the following error :
> 
> \`\`\`
> java.lang.RuntimeException: co.elastic.clients.transport.TransportException: node: https://my-cluster-address:9243/, status: 200, \[es/slm.get\_stats\] Failed to decode response
> 
> at com.adelean.eaas.services.SnapshotsManagement.getStats(SnapshotsManagement.java:70)
> at com.adelean.eaas.services.SnapshotsManagementTest.getStats(SnapshotsManagementTest.java:69)
> at java.base/java.lang.reflect.Method.invoke(Method.java:580)
> at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
> at java.base/java.util.ArrayList.forEach(ArrayList.java:1596)
> Caused by: co.elastic.clients.transport.TransportException: node: https://my-cluster-address:9243/, status: 200, \[es/slm.get\_stats\] Failed to decode response
> at co.elastic.clients.transport.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:417)
> at co.elastic.clients.transport.ElasticsearchTransportBase.getApiResponse(ElasticsearchTransportBase.java:375)
> at co.elastic.clients.transport.ElasticsearchTransportBase.performRequest(ElasticsearchTransportBase.java:141)
> at co.elastic.clients.elasticsearch.slm.ElasticsearchSlmClient.getStats(ElasticsearchSlmClient.java:300)
> at com.adelean.eaas.services.SnapshotsManagement.getStats(SnapshotsManagement.java:68)
> ... 4 more
> Caused by: co.elastic.clients.json.JsonpMappingException: Error deserializing co.elastic.clients.elasticsearch.slm.GetStatsResponse: co.elastic.clients.json.UnexpectedJsonEventException: Unexpected JSON event 'START\_OBJECT' instead of '\[KEY\_NAME, VALUE\_STRING, VALUE\_NUMBER, VALUE\_TRUE, VALUE\_FALSE\]' (JSON path: policy\_stats\[0\]) (line no=1, column no=276, offset=-1)
> at co.elastic.clients.json.JsonpMappingException.from0(JsonpMappingException.java:134)
> at co.elastic.clients.json.JsonpMappingException.from(JsonpMappingException.java:125)
> at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:322)
> at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:280)
> at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
> at co.elastic.clients.json.ObjectDeserializer$FieldObjectDeserializer.deserialize(ObjectDeserializer.java:78)
> at co.elastic.clients.json.ObjectDeserializer.deserializeInner(ObjectDeserializer.java:214)
> at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:166)
> at co.elastic.clients.json.ObjectDeserializer.deserialize(ObjectDeserializer.java:157)
> at co.elastic.clients.json.JsonpDeserializer.deserialize(JsonpDeserializer.java:77)
> 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.ElasticsearchTransportBase.decodeTransportResponse(ElasticsearchTransportBase.java:412)
> ... 8 more
> Caused by: co.elastic.clients.json.UnexpectedJsonEventException: Unexpected JSON event 'START\_OBJECT' instead of '\[KEY\_NAME, VALUE\_STRING, VALUE\_NUMBER, VALUE\_TRUE, VALUE\_FALSE\]'
> at co.elastic.clients.json.JsonpUtils.ensureAccepts(JsonpUtils.java:117)
> at co.elastic.clients.json.JsonpDeserializerBase$ArrayDeserializer.deserialize(JsonpDeserializerBase.java:317)
> ... 18 more
> \`\`\`
