diff --git a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.cxx b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.cxx
index a6b21a33004b4279d8091b5c4a907d7180763539..57cb5998c16e9bcdb03081eae4a66b196a356976 100644
--- a/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.cxx
+++ b/InnerDetector/InDetValidation/InDetPhysValMonitoring/src/InDetPerfPlot_VertexTruthMatching.cxx
@@ -286,19 +286,28 @@ const xAOD::TruthVertex* InDetPerfPlot_VertexTruthMatching::getTruthVertex(const
     const xAOD::TruthVertex* truthVtx = nullptr;
     if (recoVtx) {
         const static xAOD::Vertex::Decorator<std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>> truthMatchingInfos("TruthEventMatchingInfos");
-        const std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>& truthInfos = truthMatchingInfos(*recoVtx);
-        if (!truthInfos.empty()) {
-            const InDetVertexTruthMatchUtils::VertexTruthMatchInfo& truthInfo = truthInfos.at(0);
-            const ElementLink<xAOD::TruthEventBaseContainer> truthEventLink = std::get<0>(truthInfo);
-            const xAOD::TruthEvent* truthEvent = nullptr;
-            if (truthEventLink.isValid()) {
-                truthEvent = static_cast<const xAOD::TruthEvent*>(*truthEventLink);
-                if (truthEvent) {
-                    truthVtx = truthEvent->truthVertex(0);
+        try{
+            if (!truthMatchingInfos.isAvailable(*recoVtx)){
+                ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR not available -- returning nullptr!");
+                return truthVtx;
+            }
+            const std::vector<InDetVertexTruthMatchUtils::VertexTruthMatchInfo>& truthInfos = truthMatchingInfos(*recoVtx);
+            if (!truthInfos.empty()) {
+                const InDetVertexTruthMatchUtils::VertexTruthMatchInfo& truthInfo = truthInfos.at(0);
+                const ElementLink<xAOD::TruthEventBaseContainer> truthEventLink = std::get<0>(truthInfo);
+                const xAOD::TruthEvent* truthEvent = nullptr;
+                if (truthEventLink.isValid()) {
+                    truthEvent = static_cast<const xAOD::TruthEvent*>(*truthEventLink);
+                    if (truthEvent) {
+                        truthVtx = truthEvent->truthVertex(0);
+                    }
                 }
             }
+            else {
+                ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR yields empty vector -- returning nullptr!");
+            }
         }
-        else {
+        catch (SG::ExcBadAuxVar &){
             ATH_MSG_WARNING("TruthEventMatchingInfos DECORATOR yields empty vector -- returning nullptr!");
         }
     }
diff --git a/InnerDetector/InDetValidation/InDetTruthVertexValidation/Root/InDetVertexTruthMatchUtils.cxx b/InnerDetector/InDetValidation/InDetTruthVertexValidation/Root/InDetVertexTruthMatchUtils.cxx
index 8c35e3c7c5b1236d3c04081f2e4efaf63fcda74d..cb0e6c6b0de876804756fce04bba5e643d7b2396 100644
--- a/InnerDetector/InDetValidation/InDetTruthVertexValidation/Root/InDetVertexTruthMatchUtils.cxx
+++ b/InnerDetector/InDetValidation/InDetTruthVertexValidation/Root/InDetVertexTruthMatchUtils.cxx
@@ -47,12 +47,20 @@ const std::vector<std::pair<const xAOD::Vertex*, size_t> > hardScatterMatches( c
 
   //loop and look
   for ( auto vxit : vxContainer ) {
-    const std::vector<VertexTruthMatchInfo> & info =  matchInfoDecor( *vxit );
-    for ( size_t i = 0; i < info.size(); ++i ) {
-      if ( isHardScatterEvent( std::get<0>(info[i]) ) ) {
-        result.push_back( std::make_pair(vxit, i) );
-        break;
+    try{
+      const std::vector<VertexTruthMatchInfo> & info =  matchInfoDecor( *vxit );
+      if (!matchInfoDecor.isAvailable(*vxit)){
+        return result;
       }
+      for ( size_t i = 0; i < info.size(); ++i ) {
+        if ( isHardScatterEvent( std::get<0>(info[i]) ) ) {
+          result.push_back( std::make_pair(vxit, i) );
+          break;
+        }
+      }
+    }
+    catch (SG::ExcBadAuxVar &){
+        return result;
     }
 
   }