navigation_title: "Breaking changes" mapped_pages:
Breaking changes can impact your Elastic applications, potentially disrupting normal operations. Before you upgrade, carefully review the Elasticsearch breaking changes and take the necessary steps to mitigate any issues.
If you are migrating from a version prior to version 9.0, you must first upgrade to the last 8.x version available. To learn how to upgrade, check out Upgrade.
% ## Next version [elasticsearch-nextversion-breaking-changes]
stack: coming 9.1.3
No breaking changes in this version.
stack: coming 9.0.6
No breaking changes in this version.
No breaking changes in this version.
No breaking changes in this version.
No breaking changes in this version.
Discovery-Plugins:
:::{dropdown} Migrates discovery-ec2
plugin to AWS SDK v2
The discovery-ec2
plugin now uses AWS SDK v2 instead of v1, as AWS plans to deprecate SDK v1 before the end of Elasticsearch 8.19’s support period. AWS SDK v2 introduces several behavior changes that affect configuration.
Impact:
If you use the discovery-ec2
plugin, your existing settings may no longer be compatible. Notable changes include, but may not be limited to:
aws.secretKey
or com.amazonaws.sdk.ec2MetadataServiceEndpointOverride
system properties.discovery.ec2.protocol
setting is no longer effective.Action: Test the upgrade in a non-production environment. Adapt your configuration to the new SDK functionality. This includes, but may not be limited to, the following items:
aws.secretKey
and com.amazonaws.sdk.ec2MetadataServiceEndpointOverride
system properties.discovery.ec2.endpoint
to a URL which starts with http://
.discovery.ec2.access_key
and discovery.ec2.secret_key
keystore settings, or configure neither of these settings.For more information, view #122062. :::
ES|QL:
:::{dropdown} ES|QL now returns partial results by default In previous versions, ES|QL queries failed entirely when any error occurred. As of 8.19.0, ES|QL returns partial results instead.
Impact:
Callers must check the is_partial
flag in the response to determine whether the result is complete. Relying on full results without checking this flag may lead to incorrect assumptions about the response.
Action: If partial results are not acceptable for your use case, you can disable this behavior by:
allow_partial_results=false
in the query URL per request, oresql.query.allow_partial_results
cluster setting to false
.For more information, view #127351 (issue: #122802) :::
:::{dropdown} Disallows parentheses in unquoted index patterns in ES|QL
To avoid ambiguity with subquery syntax, ES|QL no longer allows the use of (
and )
in unquoted index patterns.
Impact: Queries that include parentheses in unquoted index names will now result in a parsing exception.
Action:
Update affected queries to quote index names that contain parentheses. For example, use FROM "("foo")"
instead of FROM (foo)
.
For more information, view #130427 (issue: #130378)
:::
:::{dropdown} Disallows mixing quoted and unquoted components in FROM
index patterns
ES|QL no longer allows mixing quoted and unquoted parts in FROM
index patterns (e.g. FROM remote:"index"
). Previously, such patterns were parsed inconsistently and could result in misleading runtime errors.
Impact: Queries using partially quoted index patterns—such as quoting only the index or only the remote cluster—will now be rejected at parse time. This change simplifies grammar handling and avoids confusing validation failures.
Action: Ensure index patterns are either fully quoted or fully unquoted. For example:
FROM "remote:index"
or FROM remote:index
FROM remote:"index"
, FROM "remote":index
For more information, view #127636 (issue: #122651) :::
:::{dropdown} skip_unavailable
now catches all remote cluster runtime errors in ES|QL
When skip_unavailable
is set to true
, ES|QL now treats all runtime errors from that cluster as non-fatal. Previously, this setting only applied to connectivity issues (i.e. when a cluster was unavailable).
Impact:
Errors such as missing indices on a remote cluster will no longer cause the query to fail. Instead, the cluster will appear in the response metadata as skipped
or partial
.
Action:
If your workflows rely on detecting remote cluster errors, review your use of skip_unavailable
and adjust error handling as needed.
For more information, view #128163 :::
Snapshot/Restore:
:::{dropdown} Upgrades repository-s3
plugin to AWS SDK v2
The repository-s3
plugin now uses AWS SDK v2 instead of v1, as AWS will deprecate SDK v1 before the end of Elasticsearch 8.19’s support period. The two SDKs differ in behavior, which may require updates to your configuration.
Impact:
Existing repository-s3
configurations may no longer be compatible. Notable differences in AWS SDK v2 include, but may not be limited to:
s3.client.${CLIENT_NAME}.endpoint
setting, together with other data drawn from the operating environment, and fell back to us-east-1
if no better value was found.com.amazonaws.sdk.ec2MetadataServiceEndpointOverride
system property.s3.client.${CLIENT_NAME}.protocol
setting is deprecated and no longer has any effect.s3.client.${CLIENT_NAME}.use_throttle_retries
setting is deprecated and no longer has any effect.s3.client.${CLIENT_NAME}.signer_override
setting is deprecated and no longer has any effect.log-delivery-write
canned ACL.https://sts.amazonaws.com
one.Action: Test the upgrade in a non-production environment. Adapt your configuration to the new SDK functionality. This includes, but may not be limited to, the following items:
s3.client.${CLIENT_NAME}.region
setting on each node. {es} will try to determine the correct region based on the endpoint URL and other data drawn from the operating environment, but might not do so correctly in all cases.com.amazonaws.sdk.ec2MetadataServiceEndpointOverride
system property.s3.client.${CLIENT_NAME}.endpoint
to a URL which starts with http://
.log-delivery-write
canned ACL.For more information, view #126843 (issue: #120993) :::
No breaking changes in this version.
No breaking changes in this version.
Snapshot/Restore:
No breaking changes in this version.
Aggregations:
Allocation:
cluster.routing.allocation.disk.watermark.enable_for_single_data_node
setting #114207/_cluster/reroute
response #114231 (issue: #88978)Analysis:
Authentication:
Cluster Coordination:
discovery.type
#112903EQL:
Extract&Transform:
Highlighting:
force_source
highlighting parameter #116943Indices APIs:
Infra/Core:
ByteSizeUnit
to 2 decimals #120142client.type
setting #118192 (issue: #104574)Infra/Logging:
deprecation.elasticsearch
keyword to elasticsearch.deprecation
#117933 (issue: #83251)Infra/Metrics:
Infra/REST API:
Ingest Node:
ecs
option on user_agent
processor #116077Logs:
Machine Learning:
Mapping:
copy_to
and boost in metadata field definition #118825_source
meta fieldmapper's mode attribute into a no-op #119072 (issue: #118596)Search:
random_score
default field to _seq_no
field #118671Snapshot/Restore:
xpack.searchable.snapshot.allocate_on_rolling_restart
setting #114202TLS:
Transform:
data_frame_transforms
roles #117519Vector Search:
_knn_search
tech preview API in v9 #118104Watcher: