[[release-notes-8.6.0]]
== {es} version 8.6.0

Also see <<breaking-changes-8.6,Breaking changes in 8.6>>.

[[known-issues-8.6.0]]
[float]
=== Known issues

include::8.4.0.asciidoc[tag=file-based-settings-deadlock-known-issue]

include::8.0.0.asciidoc[tag=jackson-filtering-bug]

[[bug-8.6.0]]
[float]
=== Bug fixes

Aggregations::
* GeoBoundsAggregations reject sub aggregations {es-pull}91073[#91073] (issue: {es-issue}91072[#91072])

Allocation::
* Avoid NPE when disassociateDeadNodes is executed for a node present in the desired balance {es-pull}91659[#91659]
* Check `NodesShutdownMetadata` type before assuming restart {es-pull}90807[#90807]

Authentication::
* Fix time unit for connection request timeout of JWKs reload {es-pull}92080[#92080]
* Improve performance for role mapping with DNs {es-pull}92074[#92074]
* Improve robustness of `JwkSet` reloading {es-pull}92081[#92081]
* Support stored authentication headers prior to version 6.7 {es-pull}92221[#92221]

Authorization::
* Make adding auth info to REST responses more robust {es-pull}92168[#92168]
* Security remove datemath special handling {es-pull}91047[#91047]

Cluster Coordination::
* Fix `TransportMasterNodeAction` holding a CS reference needlessly {es-pull}90724[#90724] (issue: {es-issue}89220[#89220])
* Include last-committed data in publication {es-pull}92259[#92259] (issue: {es-issue}90158[#90158])
* Unsafe bootstrap memory optimization {es-pull}92493[#92493]

EQL::
* EQL sequences: support join on multi-values {es-pull}89965[#89965]

Graph::
* Fix potential issue with graph api's timed out field in response {es-pull}91006[#91006]

Health::
* Don't account for the unassigned reason when diagnosing NO_VALID_SHARD_COPY {es-pull}92416[#92416]
* Fix NPE when evaluating the disk health for non-data nodes {es-pull}92643[#92643]
* Use https in the short URLs for the `shards_availability` indicator {es-pull}92310[#92310]

Indices APIs::
* Trigger index settings providers when updating component templates {es-pull}91615[#91615] (issue: {es-issue}91592[#91592])

Infra/Core::
* Check reserved state in Metadata.isGlobalStateEquals {es-pull}92124[#92124]
* Datastream unavailable exception metadata {es-pull}91461[#91461]
* Fix `BytesRefArray` on append empty `BytesRef` {es-pull}91364[#91364]
* Fix index expression options for requests with a single name or pattern {es-pull}91231[#91231]
* Force init of Unbox in log4j {es-pull}92377[#92377] (issue: {es-issue}91964[#91964])
* In file based settings, wait until security index is ready for role mappings {es-pull}92173[#92173] (issue: {es-issue}91939[#91939])
* Index expression exclusions never trigger "not found" {es-pull}90902[#90902]
* Update error states from inside the main state executor {es-pull}90346[#90346] (issue: {es-issue}90337[#90337])

Infra/Scripting::
* Fix compile with hex literals ending with d/f {es-pull}91501[#91501] (issue: {es-issue}88614[#88614])

Ingest Node::
* Fixing a race condition in `EnrichCoordinatorProxyAction` that can leave an item stuck in its queue {es-pull}90688[#90688] (issue: {es-issue}90598[#90598])

Machine Learning::
* Copy more settings when creating DF analytics destination index {es-pull}91546[#91546] (issue: {es-issue}89795[#89795])
* Fix for 'No statistics' error message {ml-pull}2410[#2410]
* Fix for 'No counts available' error message {ml-pull}2414[#2414]
* Guard against input sequences that are too long for Question Answering models {es-pull}91924[#91924]
* Improve performance of closing files before spawning {ml-pull}2424[#2424]
* Skip remote clusters when performing up front privileges validation for datafeeds {es-pull}91895[#91895] (issue: {es-issue}87832[#87832])
* Support fields with commas in data frame analytics `analyzed_fields` {es-pull}91710[#91710] (issue: {es-issue}72541[#72541])
* Validate rule filters are present on open anomaly detection api {es-pull}92207[#92207]


Mapping::
* Consolidate field name validation when parsing mappings and documents {es-pull}91328[#91328]
* Fix handling empty key case in the terms aggregation {es-pull}90822[#90822]

Monitoring::
* Fix logstash loadavg (xpack cases) {es-pull}90494[#90494]
* [Stack Monitoring] Update ES module mappings {es-pull}90649[#90649]

Network::
* Clean up on exception while chunking XContent {es-pull}92024[#92024]
* Fix Chunked APIs sending incorrect responses to HEAD requests {es-pull}92042[#92042] (issue: {es-issue}92032[#92032])
* Reject connection attempts while closing {es-pull}92465[#92465]

SQL::
* Fix NPE on logging when not tracking total hits {es-pull}92425[#92425]

Search::
* Allow different decay values depending on the score function {es-pull}91195[#91195] (issue: {es-issue}78887[#78887])
* Fix timing bug with DFS profiling {es-pull}92421[#92421]

Snapshot/Restore::
* Simplify and optimize deduplication of `RepositoryData` for a non-caching repository instance {es-pull}91851[#91851] (issue: {es-issue}89952[#89952])

Store::
* Fix numOpenOutputs and modCount in ByteSizeCachingDirectory {es-pull}92440[#92440] (issue: {es-issue}92434[#92434])

Transform::
* Skip remote clusters when performing up front privileges validation {es-pull}91788[#91788]

Vector Search::
* Make `knn` search requests fully cancellable {es-pull}90612[#90612]

[[deprecation-8.6.0]]
[float]
=== Deprecations

Allocation::
* Deprecate state field in /_cluster/reroute response {es-pull}90399[#90399]
* Ensure balance threshold is at least 1 {es-pull}92100[#92100]

Ingest Node::
* Deprecate 'remove_binary' default of false for ingest attachment processor {es-pull}90460[#90460]

Mapping::
* Deprecate silently ignoring type, fields, copy_to and boost in metadata field definition {es-pull}90989[#90989] (issue: {es-issue}35389[#35389])

[[enhancement-8.6.0]]
[float]
=== Enhancements

Allocation::
* Clear up forecasted write load and shard size from previous write index during rollovers {es-pull}91590[#91590]
* Forecast average shard size during rollovers {es-pull}91561[#91561]
* Forecast write load during rollovers {es-pull}91425[#91425]
* Improve shard balancing {es-pull}91603[#91603]
* Introduce desired-balance allocator {es-pull}91343[#91343]
* Limit shard realocation retries {es-pull}90296[#90296]
* Prevalidate node removal API {es-pull}88952[#88952]
* Set default `cluster.routing.allocation.balance.disk_usage` {es-pull}91951[#91951]
* Store write load in the `IndexMetadata` during data streams rollovers {es-pull}91019[#91019]
* Update the default `cluster.routing.allocation.balance.disk_usage` {es-pull}92065[#92065]
* `DesiredBalance:` expose it via _internal/desired_balance {es-pull}91038[#91038] (issue: {es-issue}90583[#90583])

Authorization::
* [Fleet] Added logs-elastic_agent* read privileges to `kibana_system` {es-pull}91701[#91701]

CRUD::
* Keep track of average shard write load {es-pull}90768[#90768] (issue: {es-issue}90102[#90102])

Geo::
* Centroid aggregation for cartesian points and shapes {es-pull}89216[#89216] (issue: {es-issue}90156[#90156])
* Improve H3#hexRing logic and add H3#areNeighborCells method {es-pull}91140[#91140]
* Move SpatialUtils to geo library {es-pull}88088[#88088] (issue: {es-issue}86607[#86607])
* Reduce number of object allocations in H3#geoToH3 and speed up computations {es-pull}91492[#91492]
* Support `cartesian_bounds` aggregation on point and shape {es-pull}91298[#91298] (issue: {es-issue}90157[#90157])

ILM+SLM::
* ILM: Get policy support wildcard name {es-pull}89238[#89238]

Infra/Core::
* Handle APM global labels as affix setting {es-pull}91438[#91438] (issue: {es-issue}91278[#91278])
* Improve date math exclusions in expressions {es-pull}90298[#90298]
* Introduce a phase to use String.equals on constant strings, rather than def equality {es-pull}91362[#91362] (issue: {es-issue}91235[#91235])
* More actionable error for ancient indices {es-pull}91243[#91243]
* Operator/index templates {es-pull}90143[#90143]
* Operator/ingest {es-pull}89735[#89735]
* Transport threads and `_hot_threads` {es-pull}90482[#90482] (issue: {es-issue}90334[#90334])
* Upgrade XContent to Jackson 2.14.0 and enable Fast Double Parser {es-pull}90553[#90553]

Infra/Plugins::
* Create placeholder plugin when loading stable plugins {es-pull}90870[#90870]
* Example stable plugin {es-pull}90805[#90805]
* Make `extendedPlugins,` `HasNativeController` and `moduleName` optional in plugin descriptor {es-pull}90835[#90835]
* Rename `NamedComponent` name parameter to value {es-pull}91306[#91306]

Infra/Scripting::
* Use an explicit null check for null receivers in painless, rather than an NPE {es-pull}91347[#91347] (issue: {es-issue}91236[#91236])

Machine Learning::
* Add a filter parameter to frequent items {es-pull}91137[#91137]
* Add a regex to the output of the `categorize_text` aggregation {es-pull}90723[#90723]
* Add ability to filter and sort buckets by `change_point` numeric values {es-pull}91299[#91299]
* Add api to update trained model deployment `number_of_allocations` {es-pull}90728[#90728]
* Alias timestamp to @timestamp in anomaly detection results index {es-pull}90812[#90812]
* Allow `model_aliases` to be used with Pytorch trained models {es-pull}91296[#91296]
* Allow overriding timestamp field to null in file structure finder {es-pull}90764[#90764]
* Audit a message every day the datafeed has seen no data {es-pull}91774[#91774]
* Low priority trained model deployments {es-pull}91234[#91234] (issue: {es-issue}91024[#91024])
* Provide additional information about anomaly score factors {es-pull}90675[#90675]

Mapping::
* Don't create IndexCaps objects when recording unmapped fields {es-pull}90806[#90806] (issue: {es-issue}90796[#90796])
* aggregate metric double add a max min validation {es-pull}90381[#90381]

Recovery::
* Remove resize index settings once shards are started {es-pull}90391[#90391] (issue: {es-issue}90127[#90127])

Rollup::
* Test downsample runtime fields and security {es-pull}90593[#90593]

Search::
* Add LimitedOffsetsEnum to Limited offset token {es-pull}86110[#86110] (issue: {es-issue}86109[#86109])
* Add profiling and documentation for dfs phase {es-pull}90536[#90536] (issue: {es-issue}89713[#89713])
* Bulk merge field-caps responses using mapping hash {es-pull}86323[#86323]
* Enhance nested depth tracking when parsing queries {es-pull}90425[#90425]
* Expose telemetry about search usage {es-pull}91528[#91528]
* Return docs when using nested mappings in archive indices {es-pull}90585[#90585] (issue: {es-issue}90523[#90523])
* Use `IndexOrDocValues` query for IP range queries {es-pull}90303[#90303] (issue: {es-issue}83658[#83658])

Snapshot/Restore::
* Increase snaphot pool max size to 10 {es-pull}90282[#90282] (issue: {es-issue}89608[#89608])
* Tie snapshot speed to node bandwidth settings {es-pull}91021[#91021] (issue: {es-issue}57023[#57023])

Store::
* Allow plugins to wrap Lucene directories created by the `IndexModule` {es-pull}91556[#91556]

TLS::
* Add certificate start/expiry dates to SSL Diagnostic message {es-pull}89461[#89461]

TSDB::
* Generate 'index.routing_path' from dynamic mapping templates {es-pull}90552[#90552] (issue: {es-issue}90528[#90528])
* Support malformed numbers in synthetic `_source` {es-pull}90428[#90428]
* Support synthetic `_source` for `_doc_count` field {es-pull}91465[#91465]
* Synthetic _source: support `field` in many cases {es-pull}89950[#89950]
* Synthetic `_source`: `ignore_malformed` for `ip` {es-pull}90038[#90038]
* Synthetic `_source`: support `wildcard` field {es-pull}90196[#90196]

Transform::
* Add a health section to transform stats {es-pull}90760[#90760]
* Support `aggregate_metric_double` field type in transform aggregations {es-pull}91045[#91045]

Vector Search::
* Add profiling information for knn vector queries {es-pull}90200[#90200]

[[feature-8.6.0]]
[float]
=== New features

Distributed::
* Add "index" and "search" node roles with feature flag and setting {es-pull}90993[#90993]

EQL::
* EQL samples {es-pull}91312[#91312]

Health::
* Use chunked encoding for `RestGetHealthAction` {es-pull}91515[#91515] (issue: {es-issue}90223[#90223])
* [HealthAPI] Use the `RestCancellableNodeClient` infrastructure {es-pull}91587[#91587]

Machine Learning::
* Make `categorize_text` aggregation GA {es-pull}88600[#88600]

Vector Search::
* Add fielddata and scripting support for byte-sized vectors {es-pull}91184[#91184]
* Add support for indexing byte-sized knn vectors {es-pull}90774[#90774]

[[regression-8.6.0]]
[float]
=== Regressions

Infra/Core::
* Revert "Remove `ImmutableOpenMap` from snapshot services" {es-pull}90287[#90287]

[[upgrade-8.6.0]]
[float]
=== Upgrades

Infra/Logging::
* Upgrade to log4j 2.19.0 {es-pull}90589[#90589] (issue: {es-issue}90584[#90584])

Network::
* Upgrade to Netty 4.1.82.Final {es-pull}90604[#90604]
* Upgrade to Netty 4.1.84 {es-pull}91271[#91271]

Snapshot/Restore::
* Upgrade GCS SDK to 2.13.1 {es-pull}92327[#92327]


