diff --git a/sdbusplus.hpp b/sdbusplus.hpp
index 8a5b2f4..b441d80 100644
--- a/sdbusplus.hpp
+++ b/sdbusplus.hpp
@@ -223,8 +223,8 @@
                     std::forward<Args>(args)...);
         }
 
-        /** @brief Get subtree from the mapper. */
-        static auto getSubTree(
+        /** @brief Get subtree from the mapper without checking response. */
+        static auto getSubTreeRaw(
             sdbusplus::bus::bus& bus,
             const std::string& path,
             const std::string& interface,
@@ -239,7 +239,7 @@
             using Objects = std::map<Path, std::map<Serv, Intfs>>;
             Intfs intfs = {interface};
 
-            auto mapperResp = callMethodAndRead<Objects>(
+            return callMethodAndRead<Objects>(
                     bus,
                     "xyz.openbmc_project.ObjectMapper"s,
                     "/xyz/openbmc_project/object_mapper"s,
@@ -248,7 +248,16 @@
                     path,
                     depth,
                     intfs);
+        }
 
+        /** @brief Get subtree from the mapper. */
+        static auto getSubTree(
+            sdbusplus::bus::bus& bus,
+            const std::string& path,
+            const std::string& interface,
+            int32_t depth)
+        {
+            auto mapperResp = getSubTreeRaw(bus, path, interface, depth);
             if (mapperResp.empty())
             {
                 phosphor::logging::log<phosphor::logging::level::ERR>(
