diff --git a/include/openbmc_dbus_rest.hpp b/include/openbmc_dbus_rest.hpp
index dd1dac3..e1d66f5 100644
--- a/include/openbmc_dbus_rest.hpp
+++ b/include/openbmc_dbus_rest.hpp
@@ -597,10 +597,7 @@
                              const nlohmann::json& inputJson)
 {
     int r = 0;
-    BMCWEB_LOG_DEBUG(
-        "Converting {} to type: {}",
-        inputJson.dump(2, ' ', true, nlohmann::json::error_handler_t::replace),
-        argType);
+    BMCWEB_LOG_DEBUG("Converting {} to type: {}", inputJson, argType);
     const std::vector<std::string> argTypes = dbusArgSplit(argType);
 
     // Assume a single object for now.
diff --git a/redfish-core/lib/network_protocol.hpp b/redfish-core/lib/network_protocol.hpp
index c57343c..31fc5af 100644
--- a/redfish-core/lib/network_protocol.hpp
+++ b/redfish-core/lib/network_protocol.hpp
@@ -294,21 +294,17 @@
         {
             if (!ntpServerObject->empty())
             {
-                messages::propertyValueNotInList(
-                    asyncResp->res,
-                    ntpServer.dump(2, ' ', true,
-                                   nlohmann::json::error_handler_t::replace),
-                    "NTP/NTPServers/" + std::to_string(index));
+                messages::propertyValueNotInList(asyncResp->res, ntpServer,
+                                                 "NTP/NTPServers/" +
+                                                     std::to_string(index));
                 return;
             }
             // Can't retain an item that doesn't exist
             if (currentNtpServer == currentNtpServers.end())
             {
-                messages::propertyValueOutOfRange(
-                    asyncResp->res,
-                    ntpServer.dump(2, ' ', true,
-                                   nlohmann::json::error_handler_t::replace),
-                    "NTP/NTPServers/" + std::to_string(index));
+                messages::propertyValueOutOfRange(asyncResp->res, ntpServer,
+                                                  "NTP/NTPServers/" +
+                                                      std::to_string(index));
 
                 return;
             }
@@ -321,11 +317,9 @@
             ntpServer.get_ptr<const std::string*>();
         if (ntpServerStr == nullptr)
         {
-            messages::propertyValueTypeError(
-                asyncResp->res,
-                ntpServer.dump(2, ' ', true,
-                               nlohmann::json::error_handler_t::replace),
-                "NTP/NTPServers/" + std::to_string(index));
+            messages::propertyValueTypeError(asyncResp->res, ntpServer,
+                                             "NTP/NTPServers/" +
+                                                 std::to_string(index));
             return;
         }
         if (currentNtpServer == currentNtpServers.end())
