diff --git a/src/dht_proxy_client.cpp b/src/dht_proxy_client.cpp
index dc4d3f07c82ca8b539bd5c2df35558c28bc1da0e..b91f2824551538e94e34bd86b56a67a7768ed921 100644
--- a/src/dht_proxy_client.cpp
+++ b/src/dht_proxy_client.cpp
@@ -721,9 +721,10 @@ DhtProxyClient::onProxyInfos(const Json::Value& proxyInfos, const sa_family_t fa
             ipChanged = pubAddress && pubAddress.toString() != publicIp.toString();
             pubAddress = publicIp;
 
-            if (auto localIp = proxyInfos["local_ip"]) {
-                if (localAddress.toString() != localIp.asString()) {
-                    localAddress.setAddress(localIp.asString().c_str());
+            if (proxyInfos.isMember("local_ip")) {
+                std::string localIp = proxyInfos["local_ip"].asString();
+                if (localAddress.toString() != localIp) {
+                    localAddress.setAddress(localIp.c_str());
                     ipChanged = (bool)localAddress;
                 }
             }