diff --git a/fw-update/device_updater.cpp b/fw-update/device_updater.cpp
index 759bf0d..f61428b 100644
--- a/fw-update/device_updater.cpp
+++ b/fw-update/device_updater.cpp
@@ -19,13 +19,7 @@
 
 void DeviceUpdater::startFwUpdateFlow()
 {
-    auto instanceIdResult =
-        pldm::utils::getInstanceId(updateManager->instanceIdDb.next(eid));
-    if (!instanceIdResult)
-    {
-        return;
-    }
-    auto instanceId = instanceIdResult.value();
+    auto instanceId = updateManager->instanceIdDb.next(eid);
     // NumberOfComponents
     const auto& applicableComponents =
         std::get<ApplicableComponents>(fwDeviceIDRecord);
@@ -120,13 +114,7 @@
 {
     pldmRequest.reset();
 
-    auto instanceIdResult =
-        pldm::utils::getInstanceId(updateManager->instanceIdDb.next(eid));
-    if (!instanceIdResult)
-    {
-        return;
-    }
-    auto instanceId = instanceIdResult.value();
+    auto instanceId = updateManager->instanceIdDb.next(eid);
     // TransferFlag
     const auto& applicableComponents =
         std::get<ApplicableComponents>(fwDeviceIDRecord);
@@ -277,13 +265,7 @@
 {
     pldmRequest.reset();
 
-    auto instanceIdResult =
-        pldm::utils::getInstanceId(updateManager->instanceIdDb.next(eid));
-    if (!instanceIdResult)
-    {
-        return;
-    }
-    auto instanceId = instanceIdResult.value();
+    auto instanceId = updateManager->instanceIdDb.next(eid);
     const auto& applicableComponents =
         std::get<ApplicableComponents>(fwDeviceIDRecord);
     const auto& comp = compImageInfos[applicableComponents[offset]];
@@ -728,14 +710,7 @@
 void DeviceUpdater::sendActivateFirmwareRequest()
 {
     pldmRequest.reset();
-
-    auto instanceIdResult =
-        pldm::utils::getInstanceId(updateManager->instanceIdDb.next(eid));
-    if (!instanceIdResult)
-    {
-        return;
-    }
-    auto instanceId = instanceIdResult.value();
+    auto instanceId = updateManager->instanceIdDb.next(eid);
     Request request(
         sizeof(pldm_msg_hdr) + sizeof(struct pldm_activate_firmware_req));
     auto requestMsg = new (request.data()) pldm_msg;
@@ -806,14 +781,7 @@
 void DeviceUpdater::sendCancelUpdateComponentRequest()
 {
     pldmRequest.reset();
-
-    auto instanceIdResult =
-        pldm::utils::getInstanceId(updateManager->instanceIdDb.next(eid));
-    if (!instanceIdResult)
-    {
-        return;
-    }
-    auto instanceId = instanceIdResult.value();
+    auto instanceId = updateManager->instanceIdDb.next(eid);
     Request request(sizeof(pldm_msg_hdr));
     auto requestMsg = new (request.data()) pldm_msg;
 
