Resolve Upgrade Assistant issues
The Upgrade Assistant checks your cluster for problems that can block or affect an upgrade to the next major version, and guides you through resolving them. This page covers the most common issues it reports, and how to fix them.
For issues that can occur during the upgrade itself, refer to Troubleshoot upgrades.
Elasticsearch indices are compatible across sequential major versions only. Migrate older indices before you upgrade; otherwise, a node fails to start with an index compatibility error when you upgrade it to a later version.
The Upgrade Assistant performs these migrations on your behalf, using your account's permissions. Rely on the Kibana UI, and fall back to the Elasticsearch API only when you need to resolve an error. Errors that need your intervention can appear under these steps:
- Migrate system indices: If the error
System indices migration failedappears after you click Migrate indices, then click View migration details to show the output of the Elasticsearch get feature migration information API for errors. - Review deprecated settings and resolve issues for Elasticsearch: If the error
Old index with a compatibility versionappears, choose one of the available Action items: reindex the index or set it to read-only. If you choose reindexing, any issues that occur appear under a Reindexing error banner.
Reindexing errors usually stem from configuration problems with templates or index blocks.
Elasticsearch can return cluster_block_exception index block errors. These blocks protect an index and are usually intentional, so review your index's configuration before you remove one.
The most common is FORBIDDEN/8/index write (api), from an index that has the index.blocks.write setting enabled. The error looks like this:
{
"cause":
{
"reason": "index [.test-reindexed-for-8] blocked by: [FORBIDDEN/8/index write (api)];",
"type": "cluster_block_exception"
},
"id": "XXXXX",
"index": ".test-reindexed-for-8",
"status": 403,
"type": "_doc"
}
For example, this can happen when the target index of a reindex API request already existed and had a write block enabled after ingestion.
A cluster experiencing disk watermark issues might also return FORBIDDEN/12/index read-only / allow delete (api). Resolve watermark errors before you proceed.
The Upgrade Assistant can warn you about watermark issues that might worsen during the upgrade, with a message such as:
Get disk usage on all nodes below the value specified in cluster.routing.allocation.disk.watermark.low (nodes impacted: [NODE_NAME, NODE_NAME])
Treat this as a warning: confirm you have enough disk space for the rolling upgrade before you proceed.
Reindexing can run into the same problems that occur during normal index creation. The most common involve conflicting index templates, where:
The index can't be created.
Conflicting templates can block index creation with
IllegalStateExceptionerrors such as:unable to create new index [X] because it would match composable template [Y]unable to create new index [X] because it would match legacy template [Y]
Resolve template conflicts before you proceed. To find
overlappingtemplates, use the simulate an index API.The index is created, but it inherits the wrong settings or mappings.
In earlier Elasticsearch versions, user-created templates could prevent system indices from being created correctly. This most commonly appears as
.securityreindexing or node startup errors such as:mapping set to strict, dynamic introduction of [allow_restricted_indices] within [indices] is not allowedmissing _meta field in mapping [_doc] of index [.security]failed to notify ClusterStateListenercannot read security-version string in index .securitysecurity index is not on the current version - the native realm will not be operational until the upgrade API is run on the security index
For user-managed indices, an index that inherits from an unexpected template most commonly produces reindexing errors such as:
mapper_parsing_exceptiondue toreasonoffailed to parse field [V] of type [X] in document with id 'Y'. Preview of field's value: 'Z'limit of total fields [X] in index [Y] has been exceededbecause it exceeds the mapping limit setting
Make sure to review any index template configured to match all indices (for example, with index_patterns of * or .*). Avoid these patterns, which can cause errors during index creation or unexpected behavior afterward.