diff --git a/patroni/dcs/etcd.py b/patroni/dcs/etcd.py
index <HASH>..<HASH> 100644
--- a/patroni/dcs/etcd.py
+++ b/patroni/dcs/etcd.py
@@ -188,7 +188,8 @@ class AbstractEtcdClientWithFailover(etcd.Client):
                 logger.debug("Retrieved list of machines: %s", machines)
                 if machines:
                     random.shuffle(machines)
-                    self._update_dns_cache(self._dns_resolver.resolve_async, machines)
+                    if not self._use_proxies:
+                        self._update_dns_cache(self._dns_resolver.resolve_async, machines)
                     return machines
             except Exception as e:
                 self.http.clear()
diff --git a/patroni/dcs/etcd3.py b/patroni/dcs/etcd3.py
index <HASH>..<HASH> 100644
--- a/patroni/dcs/etcd3.py
+++ b/patroni/dcs/etcd3.py
@@ -617,7 +617,7 @@ class Etcd3(AbstractEtcd):
             return self.retry(self._do_refresh_lease)
         except (Etcd3ClientError, RetryFailedError):
             logger.exception('refresh_lease')
-        raise Etcd3Error('Failed ro keepalive/grant lease')
+        raise Etcd3Error('Failed to keepalive/grant lease')
 
     def create_lease(self):
         while not self._lease:
Don't resolve cluster members when use_proxies is set (#<I>)

Close <URL>