Elasticsearch version 8.3.0edit

Also see Breaking changes in 8.3.

Known issuesedit

  • 8.3.0 has an issue that could cause creating and accessing snapshots against Azure snapshot repositories to fail authenticating when using SAS tokens. This impacts self-managed customers who have deployed 8.3.0. Elastic Cloud Azure deployments are not currently being upgraded to 8.3.0 and are not impacted as a result (issue: #88140)
  • Parsing a request when the last element in an array is filtered out (for instance using _source_includes) fails. This is due to a bug in Jackson parser. Fixed in Elasticsearch 8.6.1 (#91456)

Bug fixesedit

Aggregations
  • Allow serial_diff under min_doc_count aggs #86401
  • Allow bucket paths to specify _count within a bucket #85720
  • Fix a bug with flattened fields in terms aggregations #87392
  • Fix flaky top_metrics test #86582 (issue: #86377)
  • Fix: check field existence before trying to merge running stats #86926
  • Fix: ordering terms aggregation on top metrics null values #85774
  • Serialize interval in auto date histogram aggregation #85473
Audit
  • Fix audit logging to consistently include port number in origin.address #86732
  • Support removing ignore filters for audit logging #87675 (issue: #68588)
Authentication
  • An authorized user can disable a user with same name but different realm #86473
  • Fix clearing of lastSuccessfulAuthCache when clear all realm cache API is called #86909 (issue: #86650)
Authorization
  • Fix resolution of wildcard application privileges #87293
CAT APIs
  • Get hidden indices stats in GET _cat/shards #86601 (issue: #84656)
CCR
  • Prevent invalid datastream metadata when CCR follows a datastream with closed indices on the follower #87076 (issue: #87048)
  • Remove some blocking in CcrRepository #87235
Cluster Coordination
  • Add master_timeout support to voting config exclusions APIs #86670
  • Small fixes to clear voting config excls API #87828
Discovery-Plugins
  • [discovery-gce] Fix initialisation of transport in FIPS mode #85817 (issue: #85803)
Distributed
  • Enforce external id uniqueness during DesiredNode construction #84227
Engine
  • Fork to WRITE thread before failing shard in updateCheckPoints #87458 (issue: #87094)
  • Removing Blocking Wait for Close in RecoverySourceHandler #86127 (issue: #85839)
Features
  • Fix autoGeneratedTimestamp should not be set externally error when retrying IndexRequest #86184 (issue: #83927)
Geo
  • Fix Geotile aggregations on geo_shapes for precision 0 #87202 (issue: #87201)
  • Fix null_value for array-valued geo_point fields #85959
  • Guard for adding null value tags to vector tiles #87051
  • Quantize geo queries to remove true negatives from search results #85441 (issue: #40891)
Highlighting
ILM+SLM
  • Make the ILM Move to Error Step Batched #85565 (issue: #81880)
Indices APIs
  • Make GetIndexAction cancellable #87681
Infra/Circuit Breakers
  • Make CBE message creation more robust #87881
Infra/Core
  • Adjust osprobe assertion for burst cpu #86990
  • Clean up DeflateCompressor after exception #87163 (issue: #87160)
  • Error on direct creation of non-primary system index #86707
  • Fix null message in output #86981
  • Fix using FilterOutputStream without overriding bulk write #86304
  • Hide system indices and their aliases in upgraded clusters #87125
  • Refactor code to avoid JDK bug: JDK-8285835 #86614
Infra/Logging
  • Temporarily provide SystemPropertiesPropertySource #87149
Infra/Node Lifecycle
  • Upgrade folders after settings validation #87319
Infra/Plugins
  • Use Windows newlines when listing plugin information on Windows #86408 (issue: #86352)
Infra/REST API
  • Fix min node version before state recovery #86482
Infra/Scripting
  • Allow to sort by script value using SemVer semantics #85990 (issues: #85989, #82287)
  • Script: Fix setter shortcut for unbridged setters #86868
  • Script: Load Whitelists as Resource #87539
Infra/Settings
  • Permit removal of archived index settings #86107
Ingest
  • Execute self-reference checks once per pipeline #85926 (issue: #85790)
Java Low Level REST Client
  • Do not retry client requests when failing with ContentTooLargeException #87248 (issue: #86041)
License
  • Consistent response for starting basic license #86272 (issue: #86244)
Machine Learning
  • Fix ML task auditor exception early in cluster lifecycle #87023 (issue: #87002)
  • Fix WordPiece tokenization of unknown words with known subwords #87510
  • Fix distribution change check for change_point aggregation #86423
  • Fixes inference timeout handling bug that throws unexpected NullPointerException #87533
  • Correct logic for restart from failover fine tuning hyperparameters for training classification and regression models #2251
  • Fix possible source of "x = NaN, distribution = class boost::math::normal_distribution<…​" log errors training classification and regression models #2249
  • Fix some bugs affecting decision to stop optimizing hyperparameters for training classification and regression models #2259
  • Fix cause of "Must provide points at which to evaluate function" log error training classification and regression models #2268
  • Fix a source of "Discarding sample = nan, weights = …​" log errors for time series anomaly detection #2286
Mapping
  • Don’t run include_in_parent when in copy_to context #87123 (issue: #87036)
Network
  • Reject openConnection attempt while closing #86315 (issue: #86249)
Recovery
  • Fail shard if STARTED after master failover #87451 (issue: #87367)
SQL
  • Fix FORMAT function to comply with Microsoft SQL Server specification #86225 (issue: #66560)
  • Implement binary format support for SQL clear cursor #84230 (issue: #53359)
Search
  • Add status field to Multi Search Template Responses #85496 (issue: #83029)
  • Fields API to allow fetching values when _source is disabled #87267 (issue: #87072)
  • Fix _terms_enum on unconfigured constant_keyword #86191 (issues: #86187, #86267)
  • Fix status code when open point in time without keep_alive #87011 (issue: #87003)
  • Handle empty point values in DiskUsage API #87826 (issue: #87761)
  • Make sure to rewrite explain query on coordinator #87013 (issue: #64281)
Security
  • Make user and role name constraint consistent with max document ID #86728 (issue: #66020)
  • Security plugin close releasable realms #87429 (issue: #86286)
Snapshot/Restore
  • DONE should mean fully processed in snapshot status #86414
  • Distinguish missing and invalid repositories #85551 (issue: #85550)
  • Fork after calling getRepositoryData from StoreRecovery #87264 (issue: #87237)
  • Fork after calling getRepositoryData from StoreRecovery #87254 (issue: #87237)
  • Throw exception on illegal RepositoryData updates #87654
  • Upgrade Azure SDK to 12.16.0 #86135
Stats
  • Run TransportClusterInfoActions on MANAGEMENT pool #87679
TSDB
  • TSDB: fix the time_series in order collect priority #85526
  • TSDB: fix wrong initial value of tsidOrd in TimeSeriesIndexSearcher #85713 (issue: #85711)
Transform
  • Fix transform _start permissions to use stored headers in the config #86802
  • [Transforms] fix bug when unsetting retention policy #87711

Deprecationsedit

Authentication
  • Configuring a bind DN in an LDAP or Active Directory (AD) realm without a corresponding bind password is deprecated #85326 (issue: #47191)

Enhancementsedit

Aggregations
  • Improve min and max performance while in a random_sampler aggregation #85118
Authentication
  • Support configurable claims in JWT Realm Tokens #86533
  • Warn on user roles disabled due to licensing requirements for document or field level security #85393 (issue: #79207)
  • TokenService decode JWTs, change warn to debug #86498
Authorization
  • Add delete privilege to kibana_system for Synthetics #85844
  • Authorize painless execute as index action when an index is specified #85512 (issue: #86428)
  • Better error message for run-as denials #85501 (issue: #72904)
  • Improve "Has Privilege" performance for boolean-only response #86685
  • Relax restrictions for role names in roles API #86604 (issue: #86480)
  • [Osquery] Extend kibana_system role with an access to osquery_manager… #86609
Autoscaling
  • Add support for CPU ranges in desired nodes #86434
Cluster Coordination
  • Block joins while applier is busy #84919
  • Compute master task batch summary lazily #86210
  • Log cluster.initial_master_nodes at startup #86101
  • Reduce resource needs of join validation #85380 (issue: #83204)
  • Report pending joins in ClusterFormationFailureHelper #85635
  • Speed up map diffing (2) #86375
Discovery-Plugins
  • Remove redundant jackson dependencies from discovery-azure #87898
Distributed
  • Keep track of desired nodes cluster membership #84165
Engine
  • Cache immutable translog lastModifiedTime #82721 (issue: #82720)
  • Increase force_merge threadpool size based on the allocated processors #87082 (issue: #84943)
  • More optimal forced merges when max_num_segments is greater than 1 #85065
Geo
  • Support GeoJSON in CartesianPoint for point #85442
  • Support geo label position as runtime field #86154
  • Support geo label position through REST vector tiles API #86458 (issue: #86044)
Health
  • Add a basic check for tier preference and allocation filter clashing #85071
  • Add preflight checks to Health API to ensure health is obtainable #86404
  • Add tier information on health api migrate tiers user actions #87486
  • Health api add indicator doc links #86904 (issue: #86892)
  • Health api copy editing #87010
  • Return a default user action if no actions could be determined #87079
ILM+SLM
  • Make the ILM and SLM history_index_enabled settings dynamic #86493
Indices APIs
  • Batch execute template and pipeline cluster state operations #86017
Infra/Core
  • Add mapping for tags for the elastic agent #86298
  • Expand jar hell to include modules #86622
  • Faster GET _cluster/settings API #86405 (issue: #82342)
  • Faster string writes by saving stream flushes #86114
  • Fleet: Add start_time and minimum_execution_duration attributes to actions #86167
  • Force property expansion for security policy #87396
  • Refactor array part into a BytesRefArray which can be serialized and … #85826
  • Speed up ip v4 parser #86253
  • Use varhandles for primitive type conversion in more places #85577 (issue: #78823)
Infra/Scripting
  • Script: add ability to alias classes in whitelist #86899
Ingest
  • Iteratively execute synchronous ingest processors #84250 (issue: #84274)
  • Skip ensureNoSelfReferences check in IngestService #87337
License
  • Initialize active realms without logging a message #86134 (issue: #81380)
Machine Learning
  • A text categorization aggregation that works like ML categorization #80867
  • Add new _infer endpoint for all supervised models and deprecate deployment infer api #86361
  • Adds new question_answering NLP task for extracting answers to questions from a document #85958
  • Adds start and end params to _preview and excludes cold/frozen tiers from unbounded previews #86989
  • Adjust automatic JVM heap sizing for dedicated ML nodes #86399
  • Replace the implementation of the categorize_text aggregation #85872
  • Upgrade PyTorch to version 1.11 #2233, #2235, #2238
  • Upgrade zlib to version 1.2.12 on Windows #2253
  • Upgrade libxml2 to version 2.9.14 on Linux and Windows #2287
  • Improve time series model stability and anomaly scoring consistency for data for which many buckets are empty #2267
  • Address root cause for actual equals typical equals zero anomalies #2270
  • Better handling of outliers in update immediately after detecting changes in time series #2280
  • Improve normalization of anomaly detection results for short bucket lengths. This corrects bias which could cause our scoring to be too low for these jobs #2285 (issue: #2276)
Mapping
  • Intern field names in Mappers #86301
  • Replace BYTE_BLOCK_SIZE - 2 with indexWriter#MAX_TERM_LENGTH #85518
Network
  • Log node identity at startup #85773
Search
  • GeoBoundingBox query should work on bounding box with equal latitude or longitude #85788 (issue: #77717)
  • Improve error message for search API url parameters #86984 (issue: #79719)
Security
  • Add run-as support for OAuth2 tokens #86680
  • Relax username restrictions for User APIs #86398 (issue: #86326)
  • User Profile - Add hint support to SuggestProfiles API #85890
  • User Profile - Add new action origin and internal user #86026
  • User Profile - Support request cancellation on HTTP disconnect #86332
  • User Profile - add caching for hasPrivileges check #86543
Snapshot/Restore
  • Add parameter to exclude indices in a snapshot from response #86269 (issue: #82937)
Stats
  • Add documentation for "io_time_in_millis" #84911
TLS
  • Set serverAuth extended key usage for generated certificates and CSRs #86311 (issue: #81067)
TSDB
  • Aggregation Execution Context add timestamp provider #85850
Transform
  • Prefer secondary auth headers for transforms #86757
  • Support range aggregation in transform #86501

New featuresedit

Authorization
  • Has privileges API for profiles #85898
Geo
  • New geo_grid query to be used with geogrid aggregations #86596 (issue: #85727)
Health
  • Add support for impact_areas to health impacts #85830 (issue: #85829)
  • Add troubleshooting guides to shards allocation actions #87078
  • Adding potential impacts to remaining health indicators #86197
  • Health api drill down #85234 (issue: #84793)
  • New service to keep track of the master history as seen from each node #85941
  • Sorting impact index names by index priority #85347
Mapping
  • Add support for dots in field names for metrics usecases #86166 (issue: #63530)
  • Synthetic source #85649
SQL
  • SQ: Allow partial results in SQL queries #85897 (issue: #33148)
Search
TSDB

Upgradesedit

Infra/CLI
  • Upgrade procrun executables to 1.3.1 #86710
Infra/Core
  • Upgrade jackson to 2.13.2 #86051
Ingest
  • Upgrading to tika 2.4 #86015
Network
  • Upgrade to Netty 4.1.76 #86252
Packaging
  • Update Iron Bank base image to 8.6 #86796
SQL
  • Update dependency - JLine - to v 3.21.0 #83767 (issue: #83575)
Search
  • Update to public lucene 9.2.0 release #87162
Snapshot/Restore
  • Upgrade GCS Plugin to 1.118.1 #87800