diff --git a/roles/etcd/tasks/pre_upgrade.yml b/roles/etcd/tasks/pre_upgrade.yml
index 4483662955c96487b2c0bc1ef2d5f5df8e10a679..39993b4d37ace5eb26e619101ec289a5c6daf0ca 100644
--- a/roles/etcd/tasks/pre_upgrade.yml
+++ b/roles/etcd/tasks/pre_upgrade.yml
@@ -48,4 +48,4 @@
     {{ bin_dir }}/etcdctl --no-sync --peers={{ etcd_access_addresses | regex_replace('https','http') }} member list |
     awk -F"[: =]" '{print "{{ bin_dir }}/etcdctl --peers={{ etcd_access_addresses | regex_replace('https','http') }} member update "$1" https:"$7":"$8}' | bash
   run_once: true
-  when: 'etcd_member_list is defined and "http://" in etcd_member_list.stdout'
+  when: 'etcd_member_list.rc == 0 and "http://" in etcd_member_list.stdout'