Elasticsearch version 8.7.1edit

Also see Breaking changes in 8.7.

Known issuesedit

  • ArrayIndexOutOfBoundsException may be thrown while creating a transport message

    Certain sequences of writes and seeks to the buffer used to create a transport message may encounter an alignment bug which results in an ArrayIndexOutOfBoundsException, preventing the transport message from being sent.

    This issue is fixed in 8.8.0.

  • Shard rebalancing may temporarily unbalance cluster

    From 8.6.0 onwards the default shard rebalancing algorithm will compute the final desired balance and then make shard movements to reconcile the current state of the cluster with the desired state. However the order in which the shard movements take place may be skewed towards certain nodes, causing the cluster to become temporarily unbalanced while the reconciliation is ongoing. As always, once a node reaches a disk watermark it will not accept any additional shards, but this skew may result in nodes reaching their disk watermarks more often than expected in normal operation. Once the reconciliation process completes, the cluster will be balanced again.

    To avoid this problem, upgrade to 8.8.0 or later.

  • High Memory Pressure due to a GC JVM setting change

    This version of Elasticsearch is bundled with JDK 20. In JDK 20 Preventive GC is disabled by default. This may lead to increased memory pressure and an increased number of CircuitBreakerExceptions when retrieving large documents under some load patterns. (issue: #99592)

    If this change affects your use of Elasticsearch, consider re-enabling the previous behaviour by adding the JVM arguments -XX:+UnlockDiagnosticVMOptions -XX:+G1UsePreventiveGC (reference: JDK 20 release notes). It is important to note that this workaround is temporary and works only with JDK 20, which is bundled with Elasticsearch up to version 8.10.2 inclusive. Successive versions are bundling JDK 21+, where this setting has been removed. Specifying those JVM arguments will prevent the JVM (and therefore Elasticsearch Nodes) from starting.

Bug fixesedit

  • Compute balancer threshold based on max shard size #95090
  • Use applied state after DiskThresholdMonitor reroute #94916
  • Weaken node-replacement decider during reconciliation #95070
  • Downsample ILM action should skip non-time-series indices #94835 (issue: #93123)
Ingest Node
  • Fix async enrich execution prematurely releases enrich policy lock #94702 (issue: #94690)
  • Fix off-by-one bug in RecyclerBytesStreamOutput #95036
  • Async creation of IndexShard instances #94545
  • Return 200 when closing empty PIT or scroll #94708
  • Fix _cluster/stats .nodes.fs deduplication #94798 (issue: #24472)
  • Fix FsInfo device deduplication #94744


  • Reuse FieldPermissionsCache in Role parsing #94931


  • Upgrade bundled JDK to Java 20 #94600