diff --git a/redfish-core/lib/managers.hpp b/redfish-core/lib/managers.hpp
index 19c43f1..55c3949 100644
--- a/redfish-core/lib/managers.hpp
+++ b/redfish-core/lib/managers.hpp
@@ -1552,6 +1552,7 @@
                 std::string iface;
                 if (!createNewObject)
                 {
+                    bool findInterface = false;
                     for (const auto& interface : pathItr->second)
                     {
                         if (interface.first == pidConfigurationIface)
@@ -1560,7 +1561,8 @@
                                 type == "FanControllers")
                             {
                                 iface = pidConfigurationIface;
-                                createNewObject = true;
+                                findInterface = true;
+                                break;
                             }
                         }
                         else if (interface.first == pidZoneConfigurationIface)
@@ -1568,7 +1570,8 @@
                             if (type == "FanZones")
                             {
                                 iface = pidConfigurationIface;
-                                createNewObject = true;
+                                findInterface = true;
+                                break;
                             }
                         }
                         else if (interface.first == stepwiseConfigurationIface)
@@ -1576,10 +1579,17 @@
                             if (type == "StepwiseControllers")
                             {
                                 iface = stepwiseConfigurationIface;
-                                createNewObject = true;
+                                findInterface = true;
+                                break;
                             }
                         }
                     }
+
+                    // create new object if interface not found
+                    if (!findInterface)
+                    {
+                        createNewObject = true;
+                    }
                 }
 
                 if (createNewObject && it.value() == nullptr)
