diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageServiceImpl.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageServiceImpl.java
index a390e617ea31b9bb9f399deed3b9cc2b921ea48d..950774d23c9ebeb55bc6f04bc0779bdcff04b712 100644
--- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageServiceImpl.java
+++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/service/StorageServiceImpl.java
@@ -14,6 +14,8 @@
 
 package org.opengroup.osdu.indexer.service;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.api.client.http.HttpMethods;
 import com.google.common.base.Strings;
 import com.google.common.collect.Lists;
@@ -60,6 +62,8 @@ public class StorageServiceImpl implements StorageService {
 
     private final Gson gson = new Gson();
 
+    @Inject
+    private ObjectMapper objectMapper;
     @Inject
     private IUrlFetchService urlFetchService;
     @Inject
@@ -89,7 +93,7 @@ public class StorageServiceImpl implements StorageService {
         return Records.builder().records(valid).notFound(notFound).conversionStatuses(conversionStatuses).missingRetryRecords(missingRetryRecordIds).build();
     }
 
-    private Records getRecords(List<String> ids) throws URISyntaxException {
+    protected Records getRecords(List<String> ids) throws URISyntaxException {
         // e.g. {"records":["test:10"]}
         String body = this.gson.toJson(RecordIds.builder().records(ids).build());
 
@@ -114,9 +118,12 @@ public class StorageServiceImpl implements StorageService {
             throw new AppException(HttpStatus.SC_NOT_FOUND, "Invalid request", "Storage service returned empty response");
         }
 
-        Type recordsListType = new TypeToken<Records>() {
-        }.getType();
-        Records records = this.gson.fromJson(bulkStorageData, recordsListType);
+        Records records = null;
+        try {
+            records = this.objectMapper.readValue(bulkStorageData, Records.class);
+        } catch (JsonProcessingException e) {
+            throw new AppException(RequestStatus.INVALID_RECORD, "Invalid request", "Successful Storage service response with wrong json");
+        }
 
         // no retry possible, update record status as failed -- storage service cannot locate records
         if (!records.getNotFound().isEmpty()) {
diff --git a/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceImplTest.java b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceImplTest.java
new file mode 100644
index 0000000000000000000000000000000000000000..42791ea57c2541a2073ee87df7033bb6da3758f1
--- /dev/null
+++ b/indexer-core/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceImplTest.java
@@ -0,0 +1,54 @@
+package org.opengroup.osdu.indexer.service;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.opengroup.osdu.core.common.http.IUrlFetchService;
+import org.opengroup.osdu.core.common.model.http.DpsHeaders;
+import org.opengroup.osdu.core.common.model.http.HttpResponse;
+import org.opengroup.osdu.core.common.model.indexer.Records;
+import org.opengroup.osdu.core.common.provider.interfaces.IRequestInfo;
+import org.opengroup.osdu.indexer.config.IndexerConfigurationProperties;
+
+import java.net.URISyntaxException;
+import java.util.Collections;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class StorageServiceImplTest {
+
+    @Spy
+    private ObjectMapper objectMapper = new ObjectMapper();
+    @Mock
+    private IUrlFetchService urlFetchService;
+    @Mock
+    private IRequestInfo requestInfo;
+    @Mock
+    private IndexerConfigurationProperties configurationProperties;
+    @InjectMocks
+    private StorageServiceImpl sut;
+
+    @Test
+    public void should_parse_long_integer_values_as_integer_types() throws URISyntaxException {
+        when(this.requestInfo.getHeaders()).thenReturn(new DpsHeaders());
+
+        String body = "{\"records\":[{\"id\":\"id1\",\"version\":0,\"data\":{\"long_int\":1000000000000000000000000,\"int\":123}}],\"notFound\":[],\"conversionStatuses\":[],\"missingRetryRecords\":[]}";
+
+        HttpResponse httpResponse = mock(HttpResponse.class);
+        when(httpResponse.getBody()).thenReturn(body);
+        when(this.urlFetchService.sendRequest(any())).thenReturn(httpResponse);
+
+        Records rec = sut.getRecords(Collections.singletonList("id1"));
+        assertEquals(1, rec.getRecords().size());
+        assertEquals("1000000000000000000000000", rec.getRecords().get(0).getData().get("long_int").toString());
+        assertEquals("123", rec.getRecords().get(0).getData().get("int").toString());
+    }
+}
\ No newline at end of file
diff --git a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/StorageServiceTest.java b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/StorageServiceTest.java
index d32955169190c779486a55fe6b549b7ef7b20c09..218488386affee78476390c4ba1081774ce6a3a5 100644
--- a/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/StorageServiceTest.java
+++ b/provider/indexer-azure/src/test/java/org/opengroup/osdu/indexer/azure/service/StorageServiceTest.java
@@ -14,6 +14,7 @@
 
 package org.opengroup.osdu.indexer.azure.service;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 import org.junit.Before;
diff --git a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java
index 3ffbbbd4cdd40f018ba41288a6fdf4e67a044d3a..99bf8b099a3cff09c7581b24f7e338f752c12637 100644
--- a/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java
+++ b/provider/indexer-gcp/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java
@@ -14,6 +14,7 @@
 
 package org.opengroup.osdu.indexer.service;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 
@@ -24,6 +25,7 @@ import org.mockito.ArgumentMatchers;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Mockito;
+import org.mockito.Spy;
 import org.opengroup.osdu.core.common.model.http.DpsHeaders;
 import org.opengroup.osdu.core.common.model.http.AppException;
 import org.opengroup.osdu.core.common.model.indexer.IndexingStatus;
@@ -66,6 +68,8 @@ public class StorageServiceTest {
     private IRequestInfo requestInfo;
     @Mock
     private IndexerConfigurationProperties configurationProperties;
+    @Spy
+    private ObjectMapper objectMapper = new ObjectMapper();
     @InjectMocks
     private StorageServiceImpl sut;
 
diff --git a/provider/indexer-reference/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java b/provider/indexer-reference/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java
index 4b46abf2e3380742203290ead746c39dff3a4049..47bfb735e84e23c3681d8b003d8e79a11c4c2455 100644
--- a/provider/indexer-reference/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java
+++ b/provider/indexer-reference/src/test/java/org/opengroup/osdu/indexer/service/StorageServiceTest.java
@@ -27,6 +27,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.verify;
 import static org.powermock.api.mockito.PowerMockito.when;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.Gson;
 import com.google.gson.reflect.TypeToken;
 import java.lang.reflect.Type;
@@ -41,6 +42,7 @@ import org.mockito.ArgumentMatchers;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Mockito;
+import org.mockito.Spy;
 import org.opengroup.osdu.core.common.http.IUrlFetchService;
 import org.opengroup.osdu.core.common.logging.JaxRsDpsLog;
 import org.opengroup.osdu.core.common.model.http.AppException;
@@ -70,6 +72,8 @@ public class StorageServiceTest {
   private IRequestInfo requestInfo;
   @Mock
   private IndexerConfigurationProperties configurationProperties;
+  @Spy
+  private ObjectMapper objectMapper = new ObjectMapper();
   @InjectMocks
   private StorageServiceImpl sut;
 
diff --git a/testing/indexer-test-core/src/main/resources/features/indexrecord/indexRecord-schema-service.feature b/testing/indexer-test-core/src/main/resources/features/indexrecord/indexRecord-schema-service.feature
index 50051edcf49854757c25ce510b0125945f38aa7b..05c25961282d3ebec5af580932fd7d73f5917f7b 100644
--- a/testing/indexer-test-core/src/main/resources/features/indexrecord/indexRecord-schema-service.feature
+++ b/testing/indexer-test-core/src/main/resources/features/indexrecord/indexRecord-schema-service.feature
@@ -25,8 +25,9 @@ Feature: Indexing of the documents
     Then I should get the <number> documents for the <index> in the Elastic Search with out <skippedAttribute>
 
     Examples:
-      | kind                                           | recordFile        | number | index                                          | skippedAttribute | acl                            |
-      | "tenant1:indexer:test-data--Integration:2.0.0" | "index_records_2" | 4      | "tenant1-indexer-test-data--integration-2.0.0" | "data.Location"  | "data.default.viewers@tenant1" |
+      | kind                                           | recordFile        | number | index                                          | skippedAttribute      | acl                            |
+      | "tenant1:indexer:test-data--Integration:2.0.0" | "index_records_2" | 4      | "tenant1-indexer-test-data--integration-2.0.0" | "data.Location"       | "data.default.viewers@tenant1" |
+      | "tenant1:indexer:test-data--Integration:2.0.0" | "index_records_2" | 1      | "tenant1-indexer-test-data--integration-2.0.0" | "data.InvalidInteger" | "data.default.viewers@tenant1" |
 
   Scenario Outline: Ingest the record and Index in the Elastic Search with tags
     When I ingest records with the <recordFile> with <acl> for a given <kind>
diff --git a/testing/indexer-test-core/src/main/resources/testData/index_records_2.json b/testing/indexer-test-core/src/main/resources/testData/index_records_2.json
index ef6634d9663cce67428f5009d64464eba62ec42f..ff23f4c2c970d9488d7d0842294cebf58a0e8d40 100644
--- a/testing/indexer-test-core/src/main/resources/testData/index_records_2.json
+++ b/testing/indexer-test-core/src/main/resources/testData/index_records_2.json
@@ -18,7 +18,8 @@
       "EmptyAttribute": "",
       "Rank": 1,
       "Score" : 10,
-      "Established": "2000-03-27T23:38:48Z"
+      "Established": "2000-03-27T23:38:48Z",
+      "InvalidInteger": 123456789123456789
     }
   },
   {
@@ -40,7 +41,8 @@
       "EmptyAttribute": "",
       "Rank": 1,
       "Score" : 10,
-      "Established": "2000-03-27T23:38:48Z"
+      "Established": "2000-03-27T23:38:48Z",
+      "InvalidInteger": 123456789123456789
     }
   },
   {
@@ -62,7 +64,8 @@
       "EmptyAttribute": "",
       "Rank": 1,
       "Score" : 10,
-      "Established": "2000-03-27T23:38:48Z"
+      "Established": "2000-03-27T23:38:48Z",
+      "InvalidInteger": 123456789123456789
     }
   },
   {
@@ -84,7 +87,8 @@
       "EmptyAttribute": "",
       "Rank": 1,
       "Score" : 10,
-      "Established": "2000-03-27T23:38:48Z"
+      "Established": "2000-03-27T23:38:48Z",
+      "InvalidInteger": 123456789123456789
     }
   },
   {
@@ -107,7 +111,7 @@
       "Rank": "Test",
       "Score" : 10,
       "Established": 123456,
-      "InvalidInteger": 2147483648
+      "InvalidInteger": 8888
     }
   }
 ]
\ No newline at end of file