diff --git a/command/session_cmds.cpp b/command/session_cmds.cpp
index 9330fc2..da34c3c 100644
--- a/command/session_cmds.cpp
+++ b/command/session_cmds.cpp
@@ -195,7 +195,17 @@
                 return session::ccInvalidSessionHandle;
             }
         }
+    }
+    catch (const std::exception& e)
+    {
+        log<level::ERR>("Failed to get session manager instance or sessionID "
+                        "by sessionHandle",
+                        entry("ERRMSG=%s", e.what()));
+        return session::ccInvalidSessionHandle;
+    }
 
+    try
+    {
         auto closeSessionInstance =
             session::Manager::get().getSession(reqSessionId);
         uint8_t closeSessionPriv = closeSessionInstance->currentPrivilege();
@@ -204,6 +214,16 @@
         {
             return ipmi::ccInsufficientPrivilege;
         }
+    }
+    catch (const std::exception& e)
+    {
+        log<level::ERR>("Failed to get session manager instance or sessionID",
+                        entry("ERRMSG=%s", e.what()));
+        return session::ccInvalidSessionId;
+    }
+
+    try
+    {
         status = session::Manager::get().stopSession(reqSessionId);
 
         if (!status)
@@ -213,8 +233,9 @@
     }
     catch (const std::exception& e)
     {
-        log<level::ERR>("Failed to get session manager instance",
-                        entry("ERRMSG=%s", e.what()));
+        log<level::ERR>(
+            "Failed to get session manager instance or stop session",
+            entry("ERRMSG=%s", e.what()));
         return ipmi::ccUnspecifiedError;
     }
 
