diff --git a/redfish-core/lib/log_services.hpp b/redfish-core/lib/log_services.hpp
index 7be934e..c96a297 100644
--- a/redfish-core/lib/log_services.hpp
+++ b/redfish-core/lib/log_services.hpp
@@ -1462,8 +1462,11 @@
                                 {
                                     messages::internalError(asyncResp->res);
                                 }
-                                timestamp = crow::utility::getTimestamp(
-                                    *millisTimeStamp);
+                                else
+                                {
+                                    timestamp = crow::utility::getTimestamp(
+                                        *millisTimeStamp);
+                                }
                             }
                             else if (propertyMap.first == "UpdateTimestamp")
                             {
@@ -1473,8 +1476,12 @@
                                 {
                                     messages::internalError(asyncResp->res);
                                 }
-                                updateTimestamp = crow::utility::getTimestamp(
-                                    *millisTimeStamp);
+                                else
+                                {
+                                    updateTimestamp =
+                                        crow::utility::getTimestamp(
+                                            *millisTimeStamp);
+                                }
                             }
                             else if (propertyMap.first == "Severity")
                             {
@@ -1590,8 +1597,11 @@
                         {
                             messages::internalError(asyncResp->res);
                         }
-                        timestamp =
-                            crow::utility::getTimestamp(*millisTimeStamp);
+                        else
+                        {
+                            timestamp =
+                                crow::utility::getTimestamp(*millisTimeStamp);
+                        }
                     }
                     else if (propertyMap.first == "UpdateTimestamp")
                     {
@@ -1601,8 +1611,11 @@
                         {
                             messages::internalError(asyncResp->res);
                         }
-                        updateTimestamp =
-                            crow::utility::getTimestamp(*millisTimeStamp);
+                        else
+                        {
+                            updateTimestamp =
+                                crow::utility::getTimestamp(*millisTimeStamp);
+                        }
                     }
                     else if (propertyMap.first == "Severity")
                     {
