diff --git a/system_configuration.cpp b/system_configuration.cpp
index c2d448c..268ea27 100644
--- a/system_configuration.cpp
+++ b/system_configuration.cpp
@@ -68,25 +68,27 @@
 
 std::string SystemConfiguration::getHostNameFromSystem() const
 {
-    std::variant<std::string> name;
-    auto method = bus.new_method_call(HOSTNAMED_SERVICE, HOSTNAMED_SERVICE_PATH,
-                                      PROPERTY_INTERFACE, METHOD_GET);
-
-    method.append(HOSTNAMED_INTERFACE, "Hostname");
-
-    auto reply = bus.call(method);
-
-    if (reply)
+    try
     {
+        std::variant<std::string> name;
+        auto method =
+            bus.new_method_call(HOSTNAMED_SERVICE, HOSTNAMED_SERVICE_PATH,
+                                PROPERTY_INTERFACE, METHOD_GET);
+
+        method.append(HOSTNAMED_INTERFACE, "Hostname");
+
+        auto reply = bus.call(method);
+
         reply.read(name);
+        return std::get<std::string>(name);
     }
-    else
+    catch (const sdbusplus::exception::SdBusError& ex)
     {
-        log<level::ERR>("Failed to get hostname");
-        report<InternalFailure>();
-        return "";
+        log<level::ERR>(
+            "Failed to get the hostname from systemd-hostnamed service",
+            entry("ERR=%s", ex.what()));
     }
-    return std::get<std::string>(name);
+    return "";
 }
 
 std::string SystemConfiguration::defaultGateway(std::string gateway)
