diff --git a/roles/etcd/handlers/backup.yml b/roles/etcd/handlers/backup.yml
index a0a80e10899adbc967cef63b7f90dfff0aba22f0..d40a3740de0a2640cdabbe03ae9558460df1cf9a 100644
--- a/roles/etcd/handlers/backup.yml
+++ b/roles/etcd/handlers/backup.yml
@@ -39,6 +39,8 @@
   environment:
     ETCDCTL_API: 2
   retries: 3
+  register: backup_v2_command
+  until: backup_v2_command.rc == 0
   delay: "{{ retry_stagger | random + 3 }}"
 
 - name: Backup etcd v3 data
@@ -51,4 +53,6 @@
     ETCDCTL_CERT: "{{ etcd_cert_dir }}/admin-{{ inventory_hostname }}.pem"
     ETCDCTL_KEY: "{{ etcd_cert_dir }}/admin-{{ inventory_hostname }}-key.pem"
   retries: 3
+  register: etcd_backup_v3_command
+  until: etcd_backup_v3_command.rc == 0
   delay: "{{ retry_stagger | random + 3 }}"