diff --git a/redfish-core/lib/chassis.hpp b/redfish-core/lib/chassis.hpp
index 32eb29b..d5b8d1f 100644
--- a/redfish-core/lib/chassis.hpp
+++ b/redfish-core/lib/chassis.hpp
@@ -63,7 +63,7 @@
                 BMCWEB_LOG_DEBUG << "Service not available " << ec;
                 return;
             }
-            BMCWEB_LOG_DEBUG << "DBUS response error " << ec;
+            BMCWEB_LOG_ERROR << "DBUS response error " << ec;
             messages::internalError(aResp->res);
             return;
         }
@@ -184,7 +184,7 @@
                     const std::string& property) {
         if (ec)
         {
-            BMCWEB_LOG_DEBUG << "DBUS response error for Location";
+            BMCWEB_LOG_ERROR << "DBUS response error for Location";
             messages::internalError(asyncResp->res);
             return;
         }
@@ -205,7 +205,7 @@
                     const std::string& chassisUUID) {
         if (ec)
         {
-            BMCWEB_LOG_DEBUG << "DBUS response error for UUID";
+            BMCWEB_LOG_ERROR << "DBUS response error for UUID";
             messages::internalError(asyncResp->res);
             return;
         }
@@ -233,6 +233,7 @@
             const dbus::utility::MapperGetSubTreeResponse& subtree) {
         if (ec)
         {
+            BMCWEB_LOG_ERROR << "DBUS response error " << ec;
             messages::internalError(asyncResp->res);
             return;
         }
@@ -540,6 +541,7 @@
                        const dbus::utility::MapperGetSubTreeResponse& subtree) {
         if (ec)
         {
+            BMCWEB_LOG_ERROR << "DBUS response error " << ec;
             messages::internalError(asyncResp->res);
             return;
         }
@@ -644,7 +646,7 @@
             const dbus::utility::MapperGetSubTreePathsResponse& chassisList) {
         if (ec)
         {
-            BMCWEB_LOG_DEBUG << "[mapper] Bad D-Bus request error: " << ec;
+            BMCWEB_LOG_ERROR << "[mapper] Bad D-Bus request error: " << ec;
             messages::internalError(asyncResp->res);
             return;
         }
@@ -671,7 +673,7 @@
             // Use "Set" method to set the property value.
             if (ec2)
             {
-                BMCWEB_LOG_DEBUG << "[Set] Bad D-Bus request error: " << ec2;
+                BMCWEB_LOG_ERROR << "[Set] Bad D-Bus request error: " << ec2;
                 messages::internalError(asyncResp->res);
                 return;
             }
