[[migrating-8.17]]
== Migrating to 8.17
++++
<titleabbrev>8.17</titleabbrev>
++++

This section discusses the changes that you need to be aware of when migrating
your application to {es} 8.17.

See also <<release-highlights>> and <<es-release-notes>>.

[discrete]
[[breaking-changes-8.17]]
=== Breaking changes

There are no breaking changes in {es} 8.17.


[discrete]
[[deprecated-8.17]]
=== Deprecations

The following functionality has been deprecated in {es} 8.17
and will be removed in a future version.
While this won't have an immediate impact on your applications,
we strongly encourage you to take the described steps to update your code
after upgrading to 8.17.

To find out if you are using any deprecated functionality,
enable <<deprecation-logging, deprecation logging>>.

[discrete]
[[deprecations_817_mapping]]
==== Mapping deprecations

[[deprecate_source_mode_in_mappings]]
.Deprecate `_source.mode` in mappings
[%collapsible]
====
*Details* +
Configuring `_source.mode` in mappings is deprecated and will be removed in future versions. Use `index.mapping.source.mode` index setting instead.

*Impact* +
Use `index.mapping.source.mode` index setting instead
====

[discrete]
[[deprecations_817_rest_api]]
==== REST API deprecations

[[format_of_non_detailed_error_responses_changing_in_v9]]
.The format of non-detailed error responses is changing in v9
[%collapsible]
====
*Details* +
When an error occurs when processing a request, Elasticsearch returns information on that error in the REST response.
If `http:detailed_errors.enabled: false` is specified in node settings with the v8 REST API and below,
the format of this response changes significantly.
Starting with the v9 REST API, the JSON structure of responses with errors when the `http.detailed_errors.enabled: false` option is set
will be the same as when detailed errors are enabled (which is the default).
To keep using the existing format for non-detailed error responses, use the v8 REST API.

*Impact* +
If you have set `http.detailed_errors.enabled: false` (the default is `true`)
the structure of JSON when any exceptions occur will change with the v9 REST API.
To keep using the existing format, use the v8 REST API.
====

