diff --git a/control/json/manager.cpp b/control/json/manager.cpp
index efce6f0..0161304 100644
--- a/control/json/manager.cpp
+++ b/control/json/manager.cpp
@@ -559,9 +559,30 @@
     }
 
     auto objMgrPaths = getPaths(service, "org.freedesktop.DBus.ObjectManager");
-    if (objMgrPaths.empty())
+
+    bool useManagedObj = false;
+
+    if (!objMgrPaths.empty())
+    {
+        for (const auto& objMgrPath : objMgrPaths)
+        {
+            // Get all managed objects of service
+            auto objects =
+                util::SDBusPlus::getManagedObjects<PropertyVariantType>(
+                    _bus, service, objMgrPath);
+            if (objects.size() > 0)
+            {
+                useManagedObj = true;
+            }
+            // insert all objects that are in groups but remove any NaN values
+            insertFilteredObjects(objects);
+        }
+    }
+
+    if (!useManagedObj)
     {
         // No object manager interface provided by service?
+        // Or no object is managed?
         // Attempt to retrieve property directly
         try
         {
@@ -575,16 +596,6 @@
         {}
         return;
     }
-
-    for (const auto& objMgrPath : objMgrPaths)
-    {
-        // Get all managed objects of service
-        auto objects = util::SDBusPlus::getManagedObjects<PropertyVariantType>(
-            _bus, service, objMgrPath);
-
-        // insert all objects that are in groups but remove any NaN values
-        insertFilteredObjects(objects);
-    }
 }
 
 const std::optional<PropertyVariantType>
diff --git a/docs/control/events.md b/docs/control/events.md
index 2f359c8..fa3becc 100644
--- a/docs/control/events.md
+++ b/docs/control/events.md
@@ -645,10 +645,10 @@
 there are more than one event using this action, the maximum speed derived from
 the mapping of all groups will be set to the zone's target.
 
-... { "name": "target_from_group_max", "groups": [ { "name": "zone0_ambient",
-"interface": "xyz.openbmc_project.Sensor.Value", "property": { "name": "Value" }
-} ], "neg_hysteresis": 1, "pos_hysteresis": 0, "map": [ { "value": 10.0,
-"target": 38.0 }, ... ] }
+... { "name": "target_from_group_max", "groups": [ { "name":
+"zone0_ambient", "interface": "xyz.openbmc_project.Sensor.Value", "property":
+{ "name": "Value" } } ], "neg_hysteresis": 1, "pos_hysteresis": 0, "map": [
+{ "value": 10.0, "target": 38.0 }, ... ] }
 
 The above JSON will cause the action to read the property specified in the group
 "zone0_ambient" from all members of the group. The change in the group's members
