diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/SearchRequest.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/SearchRequest.java
index c36bde212ed91a0f2e6a723b97488d7aaab47366..7af9c3089fc993054b851ada52fd1cac79aed410 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/SearchRequest.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/model/SearchRequest.java
@@ -17,6 +17,7 @@ package org.opengroup.osdu.indexer.model;
 
 import lombok.Data;
 import lombok.ToString;
+import org.opengroup.osdu.core.common.model.search.SortQuery;
 
 import javax.validation.constraints.NotNull;
 import java.util.List;
@@ -31,5 +32,6 @@ public class SearchRequest {
     private int offset;
     private String cursor;
     private List<String> returnedFields;
+    private SortQuery sort;
     private boolean trackTotalCount = true;
 }
diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/PropertyConfigurationsServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/PropertyConfigurationsServiceImpl.java
index d7aa52e00e73505535dbac9d423168fa1744ec5b..b2d5c822b9abbd40171f5cfb837de58c4338dc74 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/PropertyConfigurationsServiceImpl.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/PropertyConfigurationsServiceImpl.java
@@ -24,6 +24,8 @@ import org.opengroup.osdu.core.common.model.http.DpsHeaders;
 import org.opengroup.osdu.core.common.model.indexer.OperationType;
 import org.opengroup.osdu.core.common.model.indexer.RecordInfo;
 import org.opengroup.osdu.core.common.model.search.RecordChangedMessages;
+import org.opengroup.osdu.core.common.model.search.SortOrder;
+import org.opengroup.osdu.core.common.model.search.SortQuery;
 import org.opengroup.osdu.core.common.model.storage.RecordData;
 import org.opengroup.osdu.core.common.model.storage.Schema;
 import org.opengroup.osdu.core.common.model.storage.SchemaItem;
@@ -46,6 +48,7 @@ import java.util.stream.Collectors;
 @Component
 public class PropertyConfigurationsServiceImpl implements PropertyConfigurationsService {
     private static final String ASSOCIATED_IDENTITIES_PROPERTY = "AssociatedIdentities";
+    private static final String VERSION_PROPERTY = "version";
     private static final String ASSOCIATED_IDENTITIES_PROPERTY_STORAGE_FORMAT_TYPE = "[]string";
     private static final String INDEX_PROPERTY_PATH_CONFIGURATION_KIND = "osdu:wks:reference-data--IndexPropertyPathConfiguration:*";
     private static final String ANCESTRY_KINDS_DELIMITER = ",";
@@ -873,10 +876,19 @@ public class PropertyConfigurationsServiceImpl implements PropertyConfigurations
     private PropertyConfigurations searchConfigurations(String kind) {
         String query = String.format("data.Code: \"%s\"", kind);
         SearchRequest searchRequest = createSearchRequest(INDEX_PROPERTY_PATH_CONFIGURATION_KIND, query);
-        for(PropertyConfigurations configurations : searchConfigurations(searchRequest)) {
-            if (kind.equals(configurations.getCode())) {
-                return configurations;
-            }
+        // If there is more than PropertyConfigurations, pick the one that was last modified.
+        // Given the property "modifyTime" is not set for new created record, we use property "version"
+        // to sort the search result in descending order
+        SortQuery sort = new SortQuery();
+        sort.setField(Arrays.asList(VERSION_PROPERTY));
+        sort.setOrder(Arrays.asList(SortOrder.DESC));
+        searchRequest.setSort(sort);
+        List<PropertyConfigurations> propertyConfigurationsList = searchConfigurations(searchRequest);
+        if(!propertyConfigurationsList.isEmpty()) {
+            if(propertyConfigurationsList.size() > 1) {
+                jaxRsDpsLog.warning(String.format("There is more than one PropertyConfigurations for kind: %s", kind));
+            }
+            return propertyConfigurationsList.get(0);
         }
         return null;
     }