diff --git a/roles/vault/tasks/shared/check_etcd.yml b/roles/vault/tasks/shared/check_etcd.yml
index 20b505eac8b9ea3a5481ba9d937ba022ab71dfe4..6158a3126372730f2e30d3e71fb486574e3d301e 100644
--- a/roles/vault/tasks/shared/check_etcd.yml
+++ b/roles/vault/tasks/shared/check_etcd.yml
@@ -4,6 +4,7 @@
   uri:
     url: "{{ vault_etcd_url }}/health"
     validate_certs: no
+    return_content: yes
   until: vault_etcd_health_check.status == 200 or vault_etcd_health_check.status == 401
   retries: 10
   delay: 2
@@ -14,7 +15,9 @@
 
 - name: check_etcd | Set fact based off the etcd_health_check response
   set_fact:
-    vault_etcd_available: "{{ vault_etcd_health_check.get('json', {}).get('health')|bool  }}"
+    vault_etcd_available: "{{ vault_etcd_health_check.content  }}"
+- set_fact:
+    vault_etcd_available: "{{ vault_etcd_available.health|d()|bool }}"
 
 - name: check_etcd | Fail if etcd is not available and needed
   fail: