diff --git a/extensions/openpower-pels/pel_values.cpp b/extensions/openpower-pels/pel_values.cpp
index 11128bd..b98aebf 100644
--- a/extensions/openpower-pels/pel_values.cpp
+++ b/extensions/openpower-pels/pel_values.cpp
@@ -217,7 +217,7 @@
  *        to their actual names.
  */
 const std::map<std::string, std::string> maintenanceProcedures = {
-    {"no_vpd_for_fru", "BMCSP01"}, {"bmc_code", "BMCSP02"}};
+    {"bmc_code", "BMCSP01"}};
 
 /**
  * @brief Map of the registry names for the symbolic FRUs to their
diff --git a/extensions/openpower-pels/registry/schema/registry_example.json b/extensions/openpower-pels/registry/schema/registry_example.json
index 84071ec..fd2a1c0 100644
--- a/extensions/openpower-pels/registry/schema/registry_example.json
+++ b/extensions/openpower-pels/registry/schema/registry_example.json
@@ -63,7 +63,7 @@
                                 [
                                     {
                                         "Priority": "high",
-                                        "Procedure": "no_vpd_for_fru"
+                                        "Procedure": "bmc_code"
                                     }
                                 ]
                             }
diff --git a/extensions/openpower-pels/registry/schema/schema.json b/extensions/openpower-pels/registry/schema/schema.json
index cbfb48a..48397a9 100644
--- a/extensions/openpower-pels/registry/schema/schema.json
+++ b/extensions/openpower-pels/registry/schema/schema.json
@@ -451,7 +451,7 @@
         {
             "description": "The maintenance procedure callout.",
             "type": "string",
-            "enum": ["no_vpd_for_fru", "bmc_code"]
+            "enum": ["bmc_code"]
         },
 
         "useInventoryLocCode":
diff --git a/extensions/openpower-pels/src.cpp b/extensions/openpower-pels/src.cpp
index b3e3e89..a6498af 100644
--- a/extensions/openpower-pels/src.cpp
+++ b/extensions/openpower-pels/src.cpp
@@ -878,12 +878,24 @@
                           ": " + e.what();
         addDebugData(msg);
 
-        callout = std::make_unique<src::Callout>(CalloutPriority::high,
-                                                 "no_vpd_for_fru");
+        // Don't add a callout in this case, because:
+        // 1) With how the inventory is primed, there is no case where
+        //    a location code is expected to be missing.  This implies
+        //    the caller is passing in something invalid.
+        // 2) The addDebugData call above will put the passed in path into
+        //    a user data section that can be seen by development for debug.
+        // 3) Even if we wanted to do a 'no_vpd_for_fru' sort of maint.
+        //    procedure, we don't have a good way to indicate to the user
+        //    anything about the intended callout (they won't see user data).
+        // 4) Creating a new standalone event log for this problem isn't
+        //    possible from inside a PEL section.
     }
 
-    createCalloutsObject();
-    _callouts->addCallout(std::move(callout));
+    if (callout)
+    {
+        createCalloutsObject();
+        _callouts->addCallout(std::move(callout));
+    }
 }
 
 std::vector<message::RegistryCallout>
