diff --git a/ibm_vpd_app.cpp b/ibm_vpd_app.cpp
index 789f1c0..b006a30 100644
--- a/ibm_vpd_app.cpp
+++ b/ibm_vpd_app.cpp
@@ -523,12 +523,16 @@
     }
 
     // Now bind the device
-    string bind = json["frus"][file].at(0).value("devAddress", "");
-    cout << "Binding device " << bind << endl;
-    string bindCmd = string("echo \"") + bind +
-                     string("\" > /sys/bus/i2c/drivers/at24/bind");
-    cout << bindCmd << endl;
-    executeCmd(bindCmd);
+    if (json["frus"][file].at(0).find("devAddress") !=
+        json["frus"][file].at(0).end())
+    {
+        string bind = json["frus"][file].at(0).value("devAddress", "");
+        cout << "Binding device " << bind << endl;
+        string bindCmd = string("echo \"") + bind +
+                         string("\" > /sys/bus/i2c/drivers/at24/bind");
+        cout << bindCmd << endl;
+        executeCmd(bindCmd);
+    }
 
     // Check if device showed up (test for file)
     if (!fs::exists(file))
diff --git a/vpd-manager/gpioMonitor.cpp b/vpd-manager/gpioMonitor.cpp
index 960b9b4..69d5e60 100644
--- a/vpd-manager/gpioMonitor.cpp
+++ b/vpd-manager/gpioMonitor.cpp
@@ -92,18 +92,23 @@
                     }
                 }
 
-                devNameAddr = eachInventory["devAddress"];
-                driverType = eachInventory["driverType"];
-                busType = eachInventory["busType"];
+                if ((eachInventory.find("devAddress") != eachInventory.end()) &&
+                    (eachInventory.find("driverType") != eachInventory.end()) &&
+                    (eachInventory.find("busType") != eachInventory.end()))
+                {
+                    devNameAddr = eachInventory["devAddress"];
+                    driverType = eachInventory["driverType"];
+                    busType = eachInventory["busType"];
 
-                // Init all Gpio info variables
-                std::shared_ptr<GpioEventHandler> gpioObj =
-                    make_shared<GpioEventHandler>(
-                        presencePinName, presenceValue, outputPinName,
-                        outputValue, devNameAddr, driverType, busType,
-                        objectPath, event);
+                    // Init all Gpio info variables
+                    std::shared_ptr<GpioEventHandler> gpioObj =
+                        make_shared<GpioEventHandler>(
+                            presencePinName, presenceValue, outputPinName,
+                            outputValue, devNameAddr, driverType, busType,
+                            objectPath, event);
 
-                gpioObjects.push_back(gpioObj);
+                    gpioObjects.push_back(gpioObj);
+                }
             }
         }
     }
