[SERVICE_UNAVAILABLE/1/state not recovered / initialized];]

Hi. I am trying to move our ES cluster from 1.x to 2.x (2.0.0 to be specific) and facing the below error in elasticsearch logs
[SERVICE_UNAVAILABLE/1/state not recovered / initialized];]

Below is the elasticsearch.yml file

bootstrap:
  mlockall: true
cloud:
  aws:
    region: us-east-1
cluster:
  name: elasticsearch-${CLUSTER}-cluster-${ENVIRONMENT}
  routing:
    allocation:
      awareness:
        attributes: aws_zone
discovery:
  ec2:
   region: us-east-1
   tag:
     cluster: ${CLUSTER}
     node_discovery: true
     environment: ${ENVIRONMENT}
     master_node: true
  type: ec2
  zen:
    fd:
      ping_interval: 1s
      ping_timeout: 30s
      ping_retries: 3
    minimum_master_nodes: 2
gateway:
  expected_nodes: 3
  recover_after_master_nodes: 2
  recover_after_time: 5m
multicast:
  enabled: false
node:
  name: ${CLUSTER}-${NODE_TYPE}-${NODE_ID}
  aws_zone: ${ZONE_ID}
  master: ${MASTER_NODE}
  data: ${DATA_NODE}
path:
  data: /usr/share/elasticsearch/data
  log: /var/log/elasticsearch
threadpool:
  search:
    reject_policy: caller
    size: 300
    type: fixed
  index:
    queue_size: 400
indices:
  memory:
    index_buffer_size: 10%
  fielddata:
    cache:
      size: 20%
script:
  inline: on
  indexed: on

# slow queries log settings
index.search.slowlog.threshold.query.warn: 10s
index.search.slowlog.threshold.query.info: 5s
index.search.slowlog.threshold.query.debug: 1s
index.search.slowlog.threshold.query.trace: 200ms

index.search.slowlog.threshold.fetch.warn: 10s
index.search.slowlog.threshold.fetch.info: 5s
index.search.slowlog.threshold.fetch.debug: 1s
index.search.slowlog.threshold.fetch.trace: 200ms

index.search.slowlog.level: trace

index.indexing.slowlog.threshold.index.warn: 10s
index.indexing.slowlog.threshold.index.info: 5s
index.indexing.slowlog.threshold.index.debug: 1s
index.indexing.slowlog.threshold.index.trace: 200ms

index.indexing.slowlog.level: trace
path.repo: /efs_snapshots/repos/

Any idea what could be the issue or if something needs to be modified in the above file?
Note: Cluster comprises of 3 master and 4 data nodes.

When upgrading Elasticsearch you should always go to the latest minor version of the major you are upgrading to. That said I do not see the point in upgrading to version 2.4.6 as it was released in 2017 and has been EOL a very long time. It is so old that you may struggle to get any help with it as most people here, myself included, has not used it in many years.

I would recommend you instead upgrade directly to the latest version even though that will require more effort.