diff --git a/platform-mc/manager.hpp b/platform-mc/manager.hpp
index 5654099..039d6f9 100644
--- a/platform-mc/manager.hpp
+++ b/platform-mc/manager.hpp
@@ -39,7 +39,7 @@
                      pldm::InstanceIdDb& instanceIdDb) :
         terminusManager(event, handler, instanceIdDb, termini, this,
                         pldm::BmcMctpEid),
-        platformManager(terminusManager, termini),
+        platformManager(terminusManager, termini, this),
         sensorManager(event, terminusManager, termini, this),
         eventManager(terminusManager, termini)
     {}
diff --git a/platform-mc/platform_manager.cpp b/platform-mc/platform_manager.cpp
index 9a053fc..4219b7d 100644
--- a/platform-mc/platform_manager.cpp
+++ b/platform-mc/platform_manager.cpp
@@ -1,5 +1,6 @@
 #include "platform_manager.hpp"
 
+#include "manager.hpp"
 #include "terminus_manager.hpp"
 
 #include <phosphor-logging/lg2.hpp>
@@ -109,6 +110,16 @@
                 "TID", tid, "ERROR", rc);
         }
         terminus->initialized = true;
+        if (manager)
+        {
+            manager->startSensorPolling(tid);
+        }
+        else
+        {
+            lg2::error(
+                "Cannot start sensor polling for TID: {TID} because the manager is not initialized.",
+                "TID", tid);
+        }
     }
 
     co_return PLDM_SUCCESS;
diff --git a/platform-mc/platform_manager.hpp b/platform-mc/platform_manager.hpp
index c555452..100c952 100644
--- a/platform-mc/platform_manager.hpp
+++ b/platform-mc/platform_manager.hpp
@@ -31,8 +31,8 @@
     ~PlatformManager() = default;
 
     explicit PlatformManager(TerminusManager& terminusManager,
-                             TerminiMapper& termini) :
-        terminusManager(terminusManager), termini(termini)
+                             TerminiMapper& termini, Manager* manager) :
+        terminusManager(terminusManager), termini(termini), manager(manager)
     {}
 
     /** @brief Initialize terminus which supports PLDM Type 2
@@ -187,6 +187,12 @@
 
     /** @brief Managed termini list */
     TerminiMapper& termini;
+
+    /**
+     * @brief Pointer to the Manager instance, used for sensor polling
+     *        and other platform-level PLDM operations.
+     */
+    Manager* manager;
 };
 } // namespace platform_mc
 } // namespace pldm
diff --git a/platform-mc/terminus_manager.cpp b/platform-mc/terminus_manager.cpp
index 0aacf33..c05d89e 100644
--- a/platform-mc/terminus_manager.cpp
+++ b/platform-mc/terminus_manager.cpp
@@ -216,10 +216,6 @@
         if (manager)
         {
             co_await manager->afterDiscoverTerminus();
-            for (const auto& tid : addedTids)
-            {
-                manager->startSensorPolling(tid);
-            }
         }
 
         queuedMctpInfos.pop();
diff --git a/platform-mc/test/event_manager_test.cpp b/platform-mc/test/event_manager_test.cpp
index 5ba9d80..f27f94e 100644
--- a/platform-mc/test/event_manager_test.cpp
+++ b/platform-mc/test/event_manager_test.cpp
@@ -25,7 +25,7 @@
                    std::chrono::seconds(1), 2, std::chrono::milliseconds(100)),
         terminusManager(event, reqHandler, instanceIdDb, termini, nullptr),
         eventManager(terminusManager, termini),
-        platformManager(terminusManager, termini)
+        platformManager(terminusManager, termini, nullptr)
     {}
 
     PldmTransport* pldmTransport = nullptr;
diff --git a/platform-mc/test/platform_manager_test.cpp b/platform-mc/test/platform_manager_test.cpp
index cf6567d..ef226f8 100644
--- a/platform-mc/test/platform_manager_test.cpp
+++ b/platform-mc/test/platform_manager_test.cpp
@@ -18,7 +18,7 @@
         reqHandler(pldmTransport, event, instanceIdDb, false,
                    std::chrono::seconds(1), 2, std::chrono::milliseconds(100)),
         mockTerminusManager(event, reqHandler, instanceIdDb, termini, nullptr),
-        platformManager(mockTerminusManager, termini)
+        platformManager(mockTerminusManager, termini, nullptr)
     {}
 
     PldmTransport* pldmTransport = nullptr;
