diff --git a/power-supply/power_supply.cpp b/power-supply/power_supply.cpp
index 5988ea9..1c069d1 100644
--- a/power-supply/power_supply.cpp
+++ b/power-supply/power_supply.cpp
@@ -716,12 +716,6 @@
         method.append(std::move(object));
 
         auto reply = bus.call(method);
-        if (reply.is_method_error())
-        {
-            log<level::ERR>(
-                "Unable to update power supply inventory properties",
-                entry("PATH=%s", path.c_str()));
-        }
 
         // TODO: openbmc/openbmc#2756
         // Calling Notify() with an enumerated property crashes inventory
diff --git a/utility.cpp b/utility.cpp
index e9918bb..836bd33 100644
--- a/utility.cpp
+++ b/utility.cpp
@@ -38,15 +38,6 @@
     method.append(std::vector<std::string>({interface}));
 
     auto reply = bus.call(method);
-    if (reply.is_method_error())
-    {
-        log<level::ERR>("Error in mapper call to get service name",
-                        entry("PATH=%s", path.c_str()),
-                        entry("INTERFACE=%s", interface.c_str()));
-
-        // TODO openbmc/openbmc#851 - Once available, throw returned error
-        throw std::runtime_error("Error in mapper call to get service name");
-    }
 
     std::map<std::string, std::vector<std::string>> response;
     reply.read(response);
diff --git a/utility.hpp b/utility.hpp
index ac7ef1f..0f008e3 100644
--- a/utility.hpp
+++ b/utility.hpp
@@ -54,16 +54,6 @@
     method.append(interface, propertyName);
 
     auto reply = bus.call(method);
-    if (reply.is_method_error())
-    {
-        using namespace phosphor::logging;
-        log<level::ERR>("Error in property get call",
-                        entry("PATH=%s", path.c_str()),
-                        entry("PROPERTY=%s", propertyName.c_str()));
-
-        // TODO openbmc/openbmc#851 - Once available, throw returned error
-        throw std::runtime_error("Error in property get call");
-    }
 
     reply.read(property);
     value = sdbusplus::message::variant_ns::get<T>(property);
@@ -92,17 +82,6 @@
     method.append(interface, propertyName, propertyValue);
 
     auto reply = bus.call(method);
-    if (reply.is_method_error())
-    {
-        using namespace phosphor::logging;
-        log<level::ERR>("Error in property set call",
-                        entry("SERVICE=%s", service.c_str()),
-                        entry("PATH=%s", path.c_str()),
-                        entry("PROPERTY=%s", propertyName.c_str()));
-
-        // TODO openbmc/openbmc#851 - Once available, throw returned error
-        throw std::runtime_error("Error in property set call");
-    }
 }
 
 /**
