# Elasticsearch not starting - failed to notify ClusterStateListener unable to parse step for policy

**URL:** <https://discuss.elastic.co/t/elasticsearch-not-starting-failed-to-notify-clusterstatelistener-unable-to-parse-step-for-policy/193435>\
**Category:** Elasticsearch\
**Created:** [August 2, 2019, 2:42am UTC](https://discuss.elastic.co/t/elasticsearch-not-starting-failed-to-notify-clusterstatelistener-unable-to-parse-step-for-policy/193435 "2019-08-02T02:42:20Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Daniel6](https://avatars.discourse-cdn.com/v4/letter/d/71e660/32.png) [@Daniel6](https://discuss.elastic.co/u/Daniel6)\
**Post date:** [August 2, 2019, 2:42am UTC](https://discuss.elastic.co/t/elasticsearch-not-starting-failed-to-notify-clusterstatelistener-unable-to-parse-step-for-policy/193435/1 "2019-08-02T02:42:20Z")

</div>

Hi,  
I run Elasticsearch on liunx (CetnOS7) server in intranet environment.  
In the beginning I run Elasticsearch as a cluster with 5 nodes.  
I also install Kibana, Logstash, Beats and it run perfectly.

When I try to run as discovery type : single node, it shows  
`cannot start with [discovery.type] set to [single-node] when local node does not have quorum in voting configuration`.

I found this [https://discuss.elastic.co/t/elasticsearch-not-starting-on-second-run-voting-configuration-and-quorum-issue/189416](https://discuss.elastic.co/t/elasticsearch-not-starting-on-second-run-voting-configuration-and-quorum-issue/189416)

After I delete all .st file at `data/nodes/0/_state` and run Elasticsearch again it shows  
`[2019-08-02][WARN][o.e.c.s.ClusterApplierService] [hostname] failed to notify ClusterStateListener java.lang.IllegalStateException: unable to parse steps for policy [auditbeat-7.2.0] as it doesn't exist at org.elasticsearch.xpack.indexlifecycle.PolicyStepsRegistry.parseStepsFromPhase(PolicyStepsRegistry.java:146) ~[?:?] at org.elasticsearch.xpack.indexlifecycle.PolicyStepsRegistry.getStep(PolicyStepsRegistry.java:203) ~[?:?] at org.elasticsearch.xpack.indexlifecycle.IndexLifecycleRunner.getCurrentStep(IndexLifecycleRunner.java:270) ~[?:?] at org.elasticsearch.xpack.indexlifecycle.IndexLifecycleRunner.runPolicyAfterStateChange(IndexLifecycleRunner.java:204) ~[?:?] at org.elasticsearch.xpack.indexlifecycle.IndexLifecycleService.triggerPolicies(IndexLifecycleService.java:268) ~[?:?] at org.elasticsearch.xpack.indexlifecycle.IndexLifecycleService.clusterChanged(IndexLifecycleService.java:188) ~[?:?] at org.elasticsearch.cluster.service.ClusterApplierService.lambda$callClusterStateListeners$6(ClusterApplierService.java:503) [elasticsearch-7.2.0.jar:7.2.0] at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) [?:?] at java.util.stream.Streams$ConcatSpliterator.forEachRemaining(Streams.java:734) [?:?] at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658) [?:?] at org.elasticsearch.cluster.service.ClusterApplierService.callClusterStateListeners(ClusterApplierService.java:500) [elasticsearch-7.2.0.jar:7.2.0] at org.elasticsearch.cluster.service.ClusterApplierService.applyChanges(ClusterApplierService.java:477) [elasticsearch-7.2.0.jar:7.2.0] at org.elasticsearch.cluster.service.ClusterApplierService.runTask(ClusterApplierService.java:418) [elasticsearch-7.2.0.jar:7.2.0] at org.elasticsearch.cluster.service.ClusterApplierService$UpdateTask.run(ClusterApplierService.java:165) [elasticsearch-7.2.0.jar:7.2.0] at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:688) [elasticsearch-7.2.0.jar:7.2.0] at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:252) [elasticsearch-7.2.0.jar:7.2.0] at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:215) [elasticsearch-7.2.0.jar:7.2.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) [?:?] at java.lang.Thread.run(Thread.java:835) [?:?]`

The message in `unable to parse steps for policy [XXXX-7.2.0]`will change to logstash, all Beats features in different try.

How could I fix it?  
Thank you!

---

<div class="post-metadata">

**Author:** ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)\
**Post date:** [August 2, 2019, 4:54am UTC](https://discuss.elastic.co/t/elasticsearch-not-starting-failed-to-notify-clusterstatelistener-unable-to-parse-step-for-policy/193435/2 "2019-08-02T04:54:09Z")

</div>

It sounds like you tried to reduce a 5-node cluster down to a 1-node cluster but did not follow the [instructions for removing master-eligible nodes](https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery-adding-removing-nodes.html#modules-discovery-removing-nodes).

Then, for some strange reason, you deleted a random selection of files from inside the data path. This node is now completely broken. It probably won't recover even if you put the deleted files back again. Your best bet will be to restore it from a snapshot, or just to start again from an empty node.

---

<div class="post-metadata">

**Author:** ![Daniel6](https://avatars.discourse-cdn.com/v4/letter/d/71e660/32.png) [@Daniel6](https://discuss.elastic.co/u/Daniel6)\
**Post date:** [August 2, 2019, 5:22am UTC](https://discuss.elastic.co/t/elasticsearch-not-starting-failed-to-notify-clusterstatelistener-unable-to-parse-step-for-policy/193435/3 "2019-08-02T05:22:26Z")

</div>

Hi David,  
Thanks for your advice.  
But I am not sure what `empty node` means and how to `start again from an empty node`.  
Could you explain it more detailed?  
Thank you!

---

<div class="post-metadata">

**Author:** ![DavidTurner](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/davidturner/32/22453_2.png) [@DavidTurner](https://discuss.elastic.co/u/DavidTurner)\
**Post date:** [August 2, 2019, 5:25am UTC](https://discuss.elastic.co/t/elasticsearch-not-starting-failed-to-notify-clusterstatelistener-unable-to-parse-step-for-policy/193435/4 "2019-08-02T05:25:05Z")

</div>

It means a node with an empty data path. Shut down the node if it's still running, delete all the files in its data path and then start the node up again.

---

<div class="post-metadata">

**Author:** ![Daniel6](https://avatars.discourse-cdn.com/v4/letter/d/71e660/32.png) [@Daniel6](https://discuss.elastic.co/u/Daniel6)\
**Post date:** [August 2, 2019, 7:33am UTC](https://discuss.elastic.co/t/elasticsearch-not-starting-failed-to-notify-clusterstatelistener-unable-to-parse-step-for-policy/193435/5 "2019-08-02T07:33:24Z")

</div>

Hi David,  
Thank you! It works 🙂

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [August 30, 2019, 7:33am UTC](https://discuss.elastic.co/t/elasticsearch-not-starting-failed-to-notify-clusterstatelistener-unable-to-parse-step-for-policy/193435/6 "2019-08-30T07:33:28Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
