---
title: Troubleshoot incomplete migration to data tiers
description: Elasticsearch standardized the implementation of hot-warm-cold architectures to data tiers in version 7.10. Some indices and deployments might have not...
url: https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/troubleshoot/elasticsearch/troubleshoot-migrate-to-tiers
products:
  - Elasticsearch
---

# Troubleshoot incomplete migration to data tiers
Elasticsearch standardized the implementation of [hot-warm-cold architectures](https://www.elastic.co/blog/elasticsearch-data-lifecycle-management-with-data-tiers) to [data tiers](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers) in version 7.10. Some indices and deployments might have not fully transitioned to [data tiers](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers) and mix the new way of implementing the hot-warm-cold architecture with [legacy](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/deploy-manage/distributed-architecture/shard-allocation-relocation-recovery/index-level-shard-allocation) based node attributes.
This could lead to unassigned shards or shards not transitioning to the desired [tier](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers).
In order to fix this follow the next steps:
<tab-set>
  <tab-item title="Elastic Cloud Hosted">
    In order to get the shards assigned we need to call the [migrate to data tiers routing](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers) API which will resolve the conflicting routing configurations towards using the standardized [data tiers](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers). This will also future-proof the system by migrating the index templates and ILM policies if needed.**Use Kibana**
    1. Log in to the [Elastic Cloud console](https://cloud.elastic.co?page=docs&placement=docs-body).
    2. On the **Hosted deployments** panel, click the name of your deployment.
       <note>
       If the name of your deployment is disabled your Kibana instances might be unhealthy, in which case contact [Elastic Support](https://support.elastic.co). If your deployment doesn’t include Kibana, all you need to do is [enable it first](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/deploy-manage/deploy/elastic-cloud/access-kibana).
       </note>
    3. Open your deployment’s side navigation menu (placed under the Elastic logo in the upper left corner) and go to **Dev Tools > Console**.
       ![](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/troubleshoot/images/elasticsearch-reference-kibana-console.png)

    1. First, let’s [stop](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-ilm-stop) index lifecycle management
       ```json
       ```
       The response will look like this:
       ```json
       {
         "acknowledged": true
       }
       ```
    2. Wait for index lifecycle management to stop. Check the status until it returns `STOPPED` as follows:
       ```json
       ```
       When index lifecycle management has successfully stopped the response will look like this:
       ```json
       {
         "operation_mode": "STOPPED"
       }
       ```
    3. [Migrate to data tiers](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers)
       ```json
       ```
       The response will look like this:
       ```json
       {
         "dry_run": false,
         "migrated_ilm_policies":["policy_with_allocate_action"], 
         "migrated_indices":["warm-index-to-migrate-000001"], 
         "migrated_legacy_templates":["a-legacy-template"], 
         "migrated_composable_templates":["a-composable-template"], 
         "migrated_component_templates":["a-component-template"] 
       }
       ```
    4. [Restart](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-ilm-start) index lifecycle management
       ```json
       ```
       The response will look like this:
       ```json
       {
         "acknowledged": true
       }
       ```
  </tab-item>

  <tab-item title="Self-managed">
    In order to get the shards assigned we need to make sure the deployment is using the [data tiers](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers) node roles and then call the [migrate to data tiers routing](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers) API which will resolve the conflicting routing configurations towards using the standardized [data tiers](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers). This will also future-proof the system by migrating the index templates and ILM policies if needed.
    1. In case your deployment is not yet using [data tiers](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers) [assign data nodes](/elastic/docs-content/pull/4236/manage-data/lifecycle/index-lifecycle-management/migrate-index-allocation-filters-to-node-roles#assign-data-tier) to the appropriate data tier. Configure the appropriate roles for each data node to assign it to one or more data tiers: `data_hot`, `data_content`, `data_warm`, `data_cold`, or `data_frozen`. For example, the following setting configures a node to be a data-only node in the hot and content tiers.
       ```yaml
       node.roles [ data_hot, data_content ]
       ```
    2. [Stop](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-ilm-stop) index lifecycle management
       ```json
       ```
       The response will look like this:
       ```json
       {
         "acknowledged": true
       }
       ```
    3. Wait for index lifecycle management to stop. Check the status until it returns `STOPPED` as follows:
       ```json
       ```
       When index lifecycle management has successfully stopped the response will look like this:
       ```json
       {
         "operation_mode": "STOPPED"
       }
       ```
    4. [Migrate to data tiers](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/4236/manage-data/lifecycle/data-tiers)
       ```json
       ```
       The response will look like this:
       ```json
       {
         "dry_run": false,
         "migrated_ilm_policies":["policy_with_allocate_action"], 
         "migrated_indices":["warm-index-to-migrate-000001"], 
         "migrated_legacy_templates":["a-legacy-template"], 
         "migrated_composable_templates":["a-composable-template"], 
         "migrated_component_templates":["a-component-template"] 
       }
       ```
    5. [Restart](https://www.elastic.co/docs/api/doc/elasticsearch/operation/operation-ilm-start) index lifecycle management
       ```json
       ```
       The response will look like this:
       ```json
       {
         "acknowledged": true
       }
       ```
  </tab-item>
</tab-set>