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

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

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

// tag::repositorydata-format-change[]
* Snapshot-based downgrades
+
The snapshot repository format changed in a manner that prevents earlier
versions of Elasticsearch from reading the repository contents if it contains
snapshots from this version and the last cluster to write to this repository
was in the 8.10 series. This will prevent you from reverting an upgrade to the
8.10 series by restoring a snapshot taken before the upgrade.
+
Snapshot repositories written by clusters running versions 8.11.0 and later are
compatible with all earlier versions. Moreover, clusters running version 8.11.0
or later will also automatically repair the repository format the first time
they write to the repository to take or delete a snapshot, making it so that
all earlier versions can read its contents again.
+
If you wish to downgrade to a version prior to 8.9.0, take or delete a snapshot
using a cluster running version 8.11.0 or later to repair the repository format
first. If you cannot repair the repository in this way, first delete all the
snapshots in the repository taken with version 8.9.0 or later. To do this will
require using a cluster running version 8.10.0 or later.
+
If you wish to downgrade to a version in the 8.9 series, you must take or delete
a snapshot using a cluster running version 8.11.0 or later to repair the
repository format first. If you cannot repair the repository in this way, first
delete all the snapshots in the repository taken with version 8.10.0 or later
using a cluster running version 8.10.4.
// end::repositorydata-format-change[]

include::8.7.1.asciidoc[tag=no-preventive-gc-issue]

[[breaking-8.10.0]]
[float]
=== Breaking changes

Analysis::
* Change pre-configured and cached analyzer components to use IndexVersion instead of Version {es-pull}97319[#97319]

Geo::
* Remove the unused executor builder for vector tile plugin {es-pull}96577[#96577]

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

Aggregations::
* Cardinality nested in time series doc values bug {es-pull}99007[#99007]
* Skip segment for `MatchNoDocsQuery` filters {es-pull}98295[#98295] (issue: {es-issue}94637[#94637])

Allocation::
* Do not assign ignored shards {es-pull}98265[#98265]
* Remove exception wrapping in `BatchedRerouteService` {es-pull}97224[#97224]

Application::
* [Profiling] Abort index creation on outdated index {es-pull}98864[#98864]
* [Profiling] Consider static settings in status {es-pull}97890[#97890]
* [Profiling] Mark executables without a name {es-pull}98884[#98884]

CRUD::
* Add missing sync on `indicesThatCannotBeCreated` {es-pull}97869[#97869]

Cluster Coordination::
* Fix cluster bootstrap warning for single-node discovery {es-pull}96895[#96895] (issue: {es-issue}96874[#96874])
* Fix election scheduling after discovery outage {es-pull}98420[#98420]
* Improve reliability of elections with message delays {es-pull}98354[#98354] (issue: {es-issue}97909[#97909])
* Make `TransportAddVotingConfigExclusionsAction` retryable {es-pull}98386[#98386]
* Release master service task on timeout {es-pull}97711[#97711]

Data streams::
* Avoid lifecycle NPE in the data stream lifecycle usage API {es-pull}98260[#98260]

Distributed::
* Avoid `transport_worker` thread in `TransportBroadcastAction` {es-pull}98001[#98001]
* Avoid `transport_worker` thread in `TransportBroadcastByNodeAction` {es-pull}97920[#97920] (issue: {es-issue}97914[#97914])
* Fork response reading in `TransportNodesAction` {es-pull}97899[#97899]

Downsampling::
* Copy "index.lifecycle.name" for ILM managed indices {es-pull}97110[#97110] (issue: {es-issue}96732[#96732])
* Downsampling: copy the `_tier_preference` setting {es-pull}96982[#96982] (issue: {es-issue}96733[#96733])

EQL::
* Fix async missing events {es-pull}97718[#97718] (issue: {es-issue}97644[#97644])

Geo::
* Fix how Maps#flatten handle map values inside a list {es-pull}98828[#98828]
* Fix mvt error when returning partial results {es-pull}98765[#98765] (issue: {es-issue}98730[#98730])

Health::
* `_health_report` SLM indicator should use the policy ID (not the name) {es-pull}99111[#99111]

Indices APIs::
* Ensure frozen indices have correct tier preference {es-pull}97967[#97967]

Infra/REST API::
* Fix possible NPE when transportversion is null in `MainResponse` {es-pull}97203[#97203]

Ingest Node::
* Revert "Add mappings for enrich fields" {es-pull}98683[#98683]

Machine Learning::
* Avoid risk of OOM in datafeeds when memory is constrained {es-pull}98324[#98324] (issue: {es-issue}89769[#89769])
* Detect infinite loop in the WordPiece tokenizer {es-pull}98206[#98206]
* Fix to stop aggregatable subobjects from being considered multi-fields, to support `"subobjects": false` in data frame analytics {es-pull}97705[#97705] (issue: {es-issue}88605[#88605])
* Fix weird `change_point` bug where all data values are equivalent {es-pull}97588[#97588]
* The model loading service should not notify listeners in a sync block {es-pull}97142[#97142]

Mapping::
* Fix `fields` API with `subobjects: false` {es-pull}97092[#97092] (issue: {es-issue}96700[#96700])

Network::
* Fork remote-cluster response handling {es-pull}97922[#97922]

Search::
* Fork CCS remote-cluster responses {es-pull}98124[#98124] (issue: {es-issue}97997[#97997])
* Fork CCS search-shards handling {es-pull}98209[#98209]
* Improve test coverage for CCS search cancellation and fix response bugs {es-pull}97029[#97029]
* Make `terminate_after` early termination friendly {es-pull}97540[#97540] (issue: {es-issue}97269[#97269])
* Track `max_score` in collapse when requested {es-pull}97703[#97703] (issue: {es-issue}97653[#97653])

Security::
* Fix NPE when `GetUser` with profile uid before profile index exists {es-pull}98961[#98961]

Snapshot/Restore::
* Fix `BlobCacheBufferedIndexInput` large read after clone {es-pull}98970[#98970]

TSDB::
* Mapped field types searchable with doc values {es-pull}97724[#97724]

Transform::
* Fix transform incorrectly calculating date bucket on updating old data {es-pull}97401[#97401] (issue: {es-issue}97101[#97101])

Watcher::
* Changing watcher to disable cookies in shared http client {es-pull}97591[#97591]

[[deprecation-8.10.0]]
[float]
=== Deprecations

Authorization::
* Mark `apm_user` for removal in a future major release {es-pull}87674[#87674]

[[enhancement-8.10.0]]
[float]
=== Enhancements

Aggregations::
* Improve error message when aggregation doesn't support counter field {es-pull}93545[#93545]
* Set default index mode for `TimeSeries` to `null` {es-pull}98808[#98808] (issue: {es-issue}97429[#97429])

Allocation::
* Add `node.roles` to cat allocation API {es-pull}96994[#96994]

Application::
* [Profiling] Add initial support for upgrades {es-pull}97380[#97380]
* [Profiling] Support index migrations {es-pull}97773[#97773]

Authentication::
* Avoid double get {es-pull}98067[#98067] (issue: {es-issue}97928[#97928])
* Give all acces to .slo-observability.* indice to kibana user {es-pull}97539[#97539]
* Refresh tokens without search {es-pull}97395[#97395]

Authorization::
* Add "operator" field to authenticate response {es-pull}97234[#97234]
* Read operator privs enabled from Env settings {es-pull}98246[#98246]
* [Fleet] Allow `kibana_system` to put datastream lifecycle {es-pull}97732[#97732]

Data streams::
* Install data stream template for Kibana reporting {es-pull}97765[#97765]

Downsampling::
* Change `MetricFieldProducer#metrics` field type from list to array {es-pull}97344[#97344]
* Improve iterating over many field producers during downsample operation {es-pull}97281[#97281]
* Run downsampling using persistent tasks {es-pull}97557[#97557] (issue: {es-issue}93582[#93582])

EQL::
* EQL to use only the necessary fields in the internal `field_caps` calls {es-pull}98987[#98987]

Engine::
* Fix edge case for active flag for flush on idle {es-pull}97332[#97332] (issue: {es-issue}97154[#97154])

Health::
* Adding special logic to the disk health check for search-only nodes {es-pull}98508[#98508]
* Health API Periodic Logging {es-pull}96772[#96772]

ILM+SLM::
* Separating SLM from ILM {es-pull}98184[#98184]

Infra/Core::
* Infrastructure to report upon document parsing {es-pull}97961[#97961]

Infra/Node Lifecycle::
* Check ILM status before reporting node migration STALLED {es-pull}98367[#98367] (issue: {es-issue}89486[#89486])

Infra/Plugins::
* Adding `ApiFilteringActionFilter` {es-pull}97985[#97985]

Infra/REST API::
* Enable Serverless API protections dynamically {es-pull}97079[#97079]
* Make `RestController` pluggable {es-pull}98187[#98187]

Infra/Settings::
* Mark customer settings for serverless {es-pull}98051[#98051]

Ingest Node::
* Allow custom geo ip database files to be downloaded {es-pull}97850[#97850]

Network::
* Add request header size limit for RCS transport connections {es-pull}98692[#98692]

Search::
* Add `completion_time` time field to `async_search` get and status response {es-pull}97700[#97700] (issue: {es-issue}88640[#88640])
* Add setting for search parallelism {es-pull}98455[#98455]
* Add support for concurrent collection when size is greater than zero {es-pull}98425[#98425]
* Cross-cluster search provides details about search on each cluster {es-pull}97731[#97731]
* Enable parallel collection in Dfs phase {es-pull}97416[#97416]
* Exclude clusters from a cross-cluster search {es-pull}97865[#97865]
* Improve MatchNoDocsQuery description {es-pull}96069[#96069] (issue: {es-issue}95741[#95741])
* Improve exists query rewrite {es-pull}97159[#97159]
* Improve match query rewrite {es-pull}97208[#97208]
* Improve prefix query rewrite {es-pull}97209[#97209]
* Improve wildcard query and terms query rewrite {es-pull}97594[#97594]
* Introduce Synonyms Management API used for synonym and synonym_graph filters {es-pull}97962[#97962] (issue: {es-issue}38523[#38523])
* Introduce a collector manager for `PartialHitCountCollector` {es-pull}97550[#97550]
* Introduce a collector manager for `QueryPhaseCollector` {es-pull}97410[#97410]
* Limit `_terms_enum` prefix size {es-pull}97488[#97488] (issue: {es-issue}96572[#96572])
* Support minimum_should_match field for terms_set query {es-pull}96082[#96082]
* Support type for simple query string {es-pull}96717[#96717]
* Unwrap IOException in `ContextIndexSearcher` concurrent code-path {es-pull}98459[#98459]
* Use a collector manager in DfsPhase Knn Search {es-pull}96689[#96689]
* Use the Weight#matches mode for highlighting by default {es-pull}96068[#96068]
* Wire `QueryPhaseCollectorManager` into the query phase {es-pull}97726[#97726]
* Wire concurrent top docs collector managers when size is 0 {es-pull}97755[#97755]
* `ProfileCollectorManager` to support child profile collectors {es-pull}97387[#97387]
* cleanup some code NoriTokenizerFactory and KuromojiTokenizerFactory {es-pull}92574[#92574]

Security::
* Add an API for managing the settings of Security system indices {es-pull}97630[#97630]
* Support getting active-only API keys via Get API keys API {es-pull}98259[#98259] (issue: {es-issue}97995[#97995])

Snapshot/Restore::
* Add Setting to optionally use mmap for shared cache IO {es-pull}97581[#97581]
* Collect additional object store stats for S3 {es-pull}98083[#98083]
* HDFS plugin add replication_factor param {es-pull}94132[#94132]

Store::
* Allow Lucene directory implementations to estimate their size {es-pull}97822[#97822]
* Allow `ByteSizeDirectory` to expose their data set sizes {es-pull}98085[#98085]

TSDB::
* Add tsdb metrics builtin component template {es-pull}97602[#97602]
* Include more downsampling status statistics {es-pull}96930[#96930] (issue: {es-issue}96760[#96760])
* `TimeSeriesIndexSearcher` to offload to the provided executor {es-pull}98414[#98414]

Transform::
* Support boxplot aggregation in transform {es-pull}96515[#96515]

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

Application::
* Enable Query Rules as technical preview {es-pull}97466[#97466]
* [Enterprise Search] Add connectors indices and ent-search pipeline {es-pull}97463[#97463]

Data streams::
* Introduce downsampling configuration for data stream lifecycle {es-pull}97041[#97041]

Search::
* Introduce executor for concurrent search {es-pull}98204[#98204]

Security::
* Beta release for API key based cross-cluster access {es-pull}98307[#98307]

[[upgrade-8.10.0]]
[float]
=== Upgrades

Network::
* Upgrade Netty to 4.1.94.Final {es-pull}97040[#97040]


