diff --git a/vpd-manager/manager.cpp b/vpd-manager/manager.cpp
index 7fa09ee..35d9ddf 100644
--- a/vpd-manager/manager.cpp
+++ b/vpd-manager/manager.cpp
@@ -449,15 +449,28 @@
         if ((jsonFile["frus"][item].at(0)).find("preAction") !=
             jsonFile["frus"][item].at(0).end())
         {
-            if (!executePreAction(jsonFile, item))
+            try
             {
-                // if the FRU has preAction defined then its execution should
-                // pass to ensure bind/unbind of data.
-                // preAction execution failed. should not call bind/unbind.
-                log<level::ERR>(
-                    "Pre-Action execution failed for the FRU",
-                    entry("ERROR=%s",
-                          ("Inventory path: " + inventoryPath).c_str()));
+                if (!executePreAction(jsonFile, item))
+                {
+                    // if the FRU has preAction defined then its execution
+                    // should pass to ensure bind/unbind of data.
+                    // preAction execution failed. should not call
+                    // bind/unbind.
+                    log<level::ERR>(
+                        "Pre-Action execution failed for the FRU",
+                        entry("ERROR=%s",
+                              ("Inventory path: " + inventoryPath).c_str()));
+                    continue;
+                }
+            }
+            catch (const GpioException& e)
+            {
+                log<level::ERR>(e.what());
+                PelAdditionalData additionalData{};
+                additionalData.emplace("DESCRIPTION", e.what());
+                createPEL(additionalData, PelSeverity::WARNING,
+                          errIntfForGpioError, sdBus);
                 continue;
             }
             prePostActionRequired = true;
@@ -529,8 +542,18 @@
             // Check if device showed up (test for file)
             if (!filesystem::exists(item))
             {
-                // If not, then take failure postAction
-                executePostFailAction(jsonFile, item);
+                try
+                {
+                    // If not, then take failure postAction
+                    executePostFailAction(jsonFile, item);
+                }
+                catch (const GpioException& e)
+                {
+                    PelAdditionalData additionalData{};
+                    additionalData.emplace("DESCRIPTION", e.what());
+                    createPEL(additionalData, PelSeverity::WARNING,
+                              errIntfForGpioError, sdBus);
+                }
             }
         }
     }
