diff --git a/http/http_client.hpp b/http/http_client.hpp
index f59438b..c9526bb 100644
--- a/http/http_client.hpp
+++ b/http/http_client.hpp
@@ -63,7 +63,6 @@
     recvInProgress,
     recvFailed,
     idle,
-    closeInProgress,
     closed,
     suspended,
     terminated,
@@ -355,7 +354,6 @@
 
     void doClose()
     {
-        state = ConnState::closeInProgress;
         boost::beast::error_code ec;
         conn.socket().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
         conn.close();
@@ -366,18 +364,19 @@
             BMCWEB_LOG_ERROR << host << ":" << std::to_string(port)
                              << ", id: " << std::to_string(connId)
                              << "shutdown failed: " << ec.message();
-            return;
         }
-        BMCWEB_LOG_DEBUG << host << ":" << std::to_string(port)
-                         << ", id: " << std::to_string(connId)
-                         << " closed gracefully";
+        else
+        {
+            BMCWEB_LOG_DEBUG << host << ":" << std::to_string(port)
+                             << ", id: " << std::to_string(connId)
+                             << " closed gracefully";
+        }
 
         state = ConnState::closed;
     }
 
     void doCloseAndRetry()
     {
-        state = ConnState::closeInProgress;
         boost::beast::error_code ec;
         conn.socket().shutdown(boost::asio::ip::tcp::socket::shutdown_both, ec);
         conn.close();
@@ -388,11 +387,13 @@
             BMCWEB_LOG_ERROR << host << ":" << std::to_string(port)
                              << ", id: " << std::to_string(connId)
                              << "shutdown failed: " << ec.message();
-            return;
         }
-        BMCWEB_LOG_DEBUG << host << ":" << std::to_string(port)
-                         << ", id: " << std::to_string(connId)
-                         << " closed gracefully";
+        else
+        {
+            BMCWEB_LOG_DEBUG << host << ":" << std::to_string(port)
+                             << ", id: " << std::to_string(connId)
+                             << " closed gracefully";
+        }
 
         // Now let's try to resend the data
         state = ConnState::retry;
