diff --git a/vpd_tool.cpp b/vpd_tool.cpp
index 0f27f52..ca48a39 100644
--- a/vpd_tool.cpp
+++ b/vpd_tool.cpp
@@ -233,9 +233,10 @@
 
         if (*Hardware)
         {
-            std::cerr << "Did you provide a valid offset? By default VPD "
-                         "offset is taken as 0. To input offset, use --seek. "
-                         "Refer vpd-tool help."
+            std::cerr << std::endl
+                      << "Did you provide a valid offset? By"
+                         " default VPD offset is taken as 0. To input offset,"
+                         " use --seek. Refer vpd-tool help."
                       << std::endl;
         }
         rc = -1;
diff --git a/vpd_tool_impl.cpp b/vpd_tool_impl.cpp
index d46637f..ff0dfad 100644
--- a/vpd_tool_impl.cpp
+++ b/vpd_tool_impl.cpp
@@ -659,6 +659,30 @@
     Binary completeVPDFile;
     completeVPDFile.resize(65504);
     fstream vpdFileStream;
+    std::string inventoryPath;
+
+    if (jsonFile["frus"].contains(fruPath))
+    {
+        uint32_t vpdStartOffset = 0;
+
+        for (const auto& item : jsonFile["frus"][fruPath])
+        {
+            if (item.find("offset") != item.end())
+            {
+                vpdStartOffset = item["offset"];
+                break;
+            }
+        }
+
+        if ((startOffset != vpdStartOffset))
+        {
+            std::cerr << "Invalid offset, please correct the offset" << endl;
+            std::cerr << "Recommended Offset is: " << vpdStartOffset << endl;
+            return;
+        }
+        inventoryPath = jsonFile["frus"][fruPath][0]["inventoryPath"];
+    }
+
     vpdFileStream.open(fruPath,
                        std::ios::in | std::ios::out | std::ios::binary);
 
@@ -672,20 +696,8 @@
         throw std::runtime_error("Invalid File");
     }
 
-    const std::string& inventoryPath =
-        jsonFile["frus"][fruPath][0]["inventoryPath"];
-
-    uint32_t vpdStartOffset = 0;
-    for (const auto& item : jsonFile["frus"][fruPath])
-    {
-        if (item.find("offset") != item.end())
-        {
-            vpdStartOffset = item["offset"];
-        }
-    }
-
     Impl obj(completeVPDFile, (constants::pimPath + inventoryPath), fruPath,
-             vpdStartOffset);
+             startOffset);
     std::string keywordVal = obj.readKwFromHw(recordName, keyword);
 
     keywordVal = getPrintableValue(keywordVal);
