diff --git a/common/utils.cpp b/common/utils.cpp
index 1dac2e5..74fcd06 100644
--- a/common/utils.cpp
+++ b/common/utils.cpp
@@ -395,7 +395,7 @@
 
 uint16_t findStateEffecterId(const pldm_pdr* pdrRepo, uint16_t entityType,
                              uint16_t entityInstance, uint16_t containerId,
-                             uint16_t stateSetId)
+                             uint16_t stateSetId, bool localOrRemote)
 {
     uint8_t* pdrData = nullptr;
     uint32_t pdrSize{};
@@ -404,7 +404,7 @@
     {
         record = pldm_pdr_find_record_by_type(pdrRepo, PLDM_STATE_EFFECTER_PDR,
                                               record, &pdrData, &pdrSize);
-        if (record)
+        if (record && (localOrRemote ^ pldm_pdr_record_is_remote(record)))
         {
             auto pdr = reinterpret_cast<pldm_state_effecter_pdr*>(pdrData);
             auto compositeEffecterCount = pdr->composite_effecter_count;
diff --git a/common/utils.hpp b/common/utils.hpp
index 8c5c4f5..4e702d8 100644
--- a/common/utils.hpp
+++ b/common/utils.hpp
@@ -294,12 +294,14 @@
  *  @param[in] entityInstance - entity instance number
  *  @param[in] containerId - container id
  *  @param[in] stateSetId - state set id
+ *  @param[in] localOrRemote - true for checking local repo and false for remote
+ *                             repo
  *
  *  @return uint16_t - the effecter id
  */
 uint16_t findStateEffecterId(const pldm_pdr* pdrRepo, uint16_t entityType,
                              uint16_t entityInstance, uint16_t containerId,
-                             uint16_t stateSetId);
+                             uint16_t stateSetId, bool localOrRemote);
 
 /** @brief Emit the sensor event signal
  *
diff --git a/configurations/host/dbus_to_host_effecter.json b/configurations/host/dbus_to_host_effecter.json
index dd95b17..b6c2c6b 100644
--- a/configurations/host/dbus_to_host_effecter.json
+++ b/configurations/host/dbus_to_host_effecter.json
@@ -3,7 +3,6 @@
         {
             "mctp_eid": 9,
             "effecter_info": {
-                "effecterID": 4,
                 "containerID": 0,
                 "entityType": 33,
                 "entityInstance": 0,
diff --git a/host-bmc/dbus_to_host_effecters.cpp b/host-bmc/dbus_to_host_effecters.cpp
index b2fc092..c59b62a 100644
--- a/host-bmc/dbus_to_host_effecters.cpp
+++ b/host-bmc/dbus_to_host_effecters.cpp
@@ -135,13 +135,15 @@
 
     if (effecterId == PLDM_INVALID_EFFECTER_ID)
     {
+        constexpr auto localOrRemote = false;
         effecterId = findStateEffecterId(
             pdrRepo, hostEffecterInfo[effecterInfoIndex].entityType,
             hostEffecterInfo[effecterInfoIndex].entityInstance,
             hostEffecterInfo[effecterInfoIndex].containerId,
             hostEffecterInfo[effecterInfoIndex]
                 .dbusInfo[dbusInfoIndex]
-                .state.stateSetId);
+                .state.stateSetId,
+            localOrRemote);
         if (effecterId == PLDM_INVALID_EFFECTER_ID)
         {
             std::cerr << "Effecter id not found in pdr repo \n";
diff --git a/test/libpldmresponder_pdr_effecter_test.cpp b/test/libpldmresponder_pdr_effecter_test.cpp
index 60181d6..a2a7288 100644
--- a/test/libpldmresponder_pdr_effecter_test.cpp
+++ b/test/libpldmresponder_pdr_effecter_test.cpp
@@ -200,11 +200,11 @@
     uint16_t containerId = 0;
     uint16_t stateSetId = 196;
     auto effecterId = findStateEffecterId(inPDRRepo, entityType, entityInstance,
-                                          containerId, stateSetId);
+                                          containerId, stateSetId, true);
     ASSERT_EQ(effecterId, 1);
     stateSetId = 300;
     effecterId = findStateEffecterId(inPDRRepo, entityType, entityInstance,
-                                     containerId, stateSetId);
+                                     containerId, stateSetId, true);
     ASSERT_EQ(effecterId, PLDM_INVALID_EFFECTER_ID);
     pldm_pdr_destroy(inPDRRepo);
 }
