diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
index e4f02cc..832c644 100644
--- a/redfish-core/lib/systems.hpp
+++ b/redfish-core/lib/systems.hpp
@@ -996,12 +996,14 @@
                     const std::string& bootSourceStr) {
             if (ec)
             {
-                if (ec.value() == boost::asio::error::host_unreachable)
+                // Service not available, no error, just don't return
+                // Boot Override Source information
+                if (ec.value() != EBADR &&
+                    ec.value() != boost::asio::error::host_unreachable)
                 {
-                    return;
+                    BMCWEB_LOG_ERROR("D-Bus response error: {}", ec);
+                    messages::internalError(asyncResp->res);
                 }
-                BMCWEB_LOG_ERROR("DBUS response error {}", ec);
-                messages::internalError(asyncResp->res);
                 return;
             }
 
@@ -1087,12 +1089,14 @@
                     const bool bootOverrideEnable) {
             if (ec)
             {
-                if (ec.value() == boost::asio::error::host_unreachable)
+                // Service not available, no error, just don't return
+                // Boot Override Enable information
+                if (ec.value() != EBADR &&
+                    ec.value() != boost::asio::error::host_unreachable)
                 {
-                    return;
+                    BMCWEB_LOG_ERROR("D-Bus response error: {}", ec);
+                    messages::internalError(asyncResp->res);
                 }
-                BMCWEB_LOG_ERROR("DBUS response error {}", ec);
-                messages::internalError(asyncResp->res);
                 return;
             }
 
