diff --git a/http/http_connection.hpp b/http/http_connection.hpp
index a4723f1..6d1c13c 100644
--- a/http/http_connection.hpp
+++ b/http/http_connection.hpp
@@ -347,8 +347,6 @@
             BMCWEB_LOG_ERROR << p.what();
         }
 
-        needToCallAfterHandlers = false;
-
         if (!isInvalidRequest)
         {
             res.setCompleteRequestHandler(nullptr);
@@ -359,7 +357,6 @@
 
             if (!res.completed)
             {
-                needToCallAfterHandlers = true;
                 res.setCompleteRequestHandler([self(shared_from_this())] {
                     boost::asio::post(self->adaptor.get_executor(),
                                       [self] { self->completeRequest(); });
@@ -434,10 +431,7 @@
 
         addSecurityHeaders(*req, res);
 
-        if (needToCallAfterHandlers)
-        {
-            crow::authorization::cleanupTempSession(*req);
-        }
+        crow::authorization::cleanupTempSession(*req);
 
         if (!isAlive())
         {
@@ -801,9 +795,6 @@
 
     std::optional<size_t> timerCancelKey;
 
-    bool needToCallAfterHandlers{};
-    bool needToStartReadAfterComplete{};
-
     std::function<std::string()>& getCachedDateStr;
     detail::TimerQueue& timerQueue;
 
