diff --git a/roles/recover_control_plane/etcd/tasks/main.yml b/roles/recover_control_plane/etcd/tasks/main.yml
index d1f7912fd1eefae4d7494ddd4230f8885d174783..a0e7025750ea93b96e07517b8eae73710dff1344 100644
--- a/roles/recover_control_plane/etcd/tasks/main.yml
+++ b/roles/recover_control_plane/etcd/tasks/main.yml
@@ -24,6 +24,8 @@
 - name: Set has_quorum fact
   set_fact:
     has_quorum: "{{ etcd_endpoint_health.stderr_lines | select('match', '.*is healthy.*') | list | length >= etcd_endpoint_health.stderr_lines | select('match', '.*is unhealthy.*') | list | length }}"
+  when:
+    - groups['broken_etcd']
 
 - include_tasks: recover_lost_quorum.yml
   when: