diff --git a/search-core/src/main/java/org/opengroup/osdu/search/provider/impl/ScrollCoreQueryServiceImpl.java b/search-core/src/main/java/org/opengroup/osdu/search/provider/impl/ScrollCoreQueryServiceImpl.java
index 5e095252cf4a8141ef8a636345e80f60a6699c0f..b6e2b6ae932e5aadaf5072f810b60a45c85e2b6d 100644
--- a/search-core/src/main/java/org/opengroup/osdu/search/provider/impl/ScrollCoreQueryServiceImpl.java
+++ b/search-core/src/main/java/org/opengroup/osdu/search/provider/impl/ScrollCoreQueryServiceImpl.java
@@ -171,7 +171,7 @@ public class ScrollCoreQueryServiceImpl extends CoreQueryBase implements IScroll
 
     List<Map<String, Object>> results = getHitsFromSearchResponse(scrollResponse);
     queryResponse.setTotalCount(scrollResponse.hits().total().value());
-    if (results != null) {
+    if (!results.isEmpty()) {
       queryResponse.setResults(results);
       queryResponse.setCursor(
           this.refreshCursorCache(scrollResponse.scrollId(), dpsHeaders.getUserEmail()));
@@ -192,7 +192,7 @@ public class ScrollCoreQueryServiceImpl extends CoreQueryBase implements IScroll
     SearchResponse<Map<String, Object>> searchResponse =
         this.makeSearchRequest(searchRequest, client);
     List<Map<String, Object>> results = this.getHitsFromSearchResponse(searchResponse);
-    if (results != null) {
+    if (!results.isEmpty()) {
       return CursorQueryResponse.builder()
           .cursor(refreshCursorCache(searchResponse.scrollId(), dpsHeaders.getUserEmail()))
           .results(results)
diff --git a/search-core/src/test/java/org/opengroup/osdu/search/provider/impl/ScrollCoreQueryServiceImplTest.java b/search-core/src/test/java/org/opengroup/osdu/search/provider/impl/ScrollCoreQueryServiceImplTest.java
index 8a3c02dedc1048ed453ac44176fdf2558c269dd6..1efee529bf9491a911a97c79ba138b9e44e3f128 100644
--- a/search-core/src/test/java/org/opengroup/osdu/search/provider/impl/ScrollCoreQueryServiceImplTest.java
+++ b/search-core/src/test/java/org/opengroup/osdu/search/provider/impl/ScrollCoreQueryServiceImplTest.java
@@ -225,6 +225,7 @@ public class ScrollCoreQueryServiceImplTest {
         assertEquals(obtainedQueryResponse.getTotalCount(), totalHitsCount);
         assertEquals(scrollRequest.scrollId(), scrollId);
         assertEquals(searchRequestCursor, cursor);
+        assertNull(obtainedQueryResponse.getCursor());
     }
 
     @Test
@@ -260,15 +261,12 @@ public class ScrollCoreQueryServiceImplTest {
     public void testQueryIndex_whenNoCursorInSearchQueryAndSearchHitsIsEmpty() throws Exception {
         CursorQueryRequest searchRequest = mock(CursorQueryRequest.class);
         SearchResponse searchScrollResponse = mock(SearchResponse.class);
-        TotalHits totalHits = mock(TotalHits.class);
 
         List<Hit<Map<String, Object>>> hits = new ArrayList<>();
         long totalHitsCount = 0L;
 
         doReturn(searchHits).when(searchScrollResponse).hits();
         doReturn(hits).when(searchHits).hits();
-        doReturn(totalHits).when(searchHits).total();
-        doReturn(totalHitsCount).when(totalHits).value();
         doReturn(searchScrollResponse).when(client).search(any(SearchRequest.class), eq((Type)Map.class));
         when(featureFlag.isFeatureEnabled(POLICY_FEATURE_NAME)).thenReturn(false);
 
@@ -276,6 +274,7 @@ public class ScrollCoreQueryServiceImplTest {
 
         assertEquals(obtainedQueryResponse.getResults().size(), 0);
         assertEquals(obtainedQueryResponse.getTotalCount(), totalHitsCount);
+        assertNull(obtainedQueryResponse.getCursor());
     }
 
     @Test(expected = AppException.class)
diff --git a/testing/integration-tests/search-test-core/src/main/java/org/opengroup/osdu/common/QueryByCursorBase.java b/testing/integration-tests/search-test-core/src/main/java/org/opengroup/osdu/common/QueryByCursorBase.java
index 0295c6de885d4da67f67225cc265a8ee3e058acd..b9be8c09471db1ed9f9a305ae090403108f22973 100644
--- a/testing/integration-tests/search-test-core/src/main/java/org/opengroup/osdu/common/QueryByCursorBase.java
+++ b/testing/integration-tests/search-test-core/src/main/java/org/opengroup/osdu/common/QueryByCursorBase.java
@@ -2,6 +2,7 @@ package org.opengroup.osdu.common;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import com.google.gson.Gson;
 import java.util.List;
@@ -70,6 +71,9 @@ public class QueryByCursorBase extends TestsBase {
         ResponseMock response = executeQuery(payload, headers, httpClient.getAccessToken(), ResponseMock.class);
         assertEquals(200, response.getResponseCode());
         assertEquals(resultCount, response.getResults().size());
+        if(resultCount == 0){
+            assertNull(response.getCursor());
+        }
     }
 
     public void i_should_get_response_with_reason_message_and_errors(List<Integer> codes, String type, String msg,
diff --git a/testing/integration-tests/search-test-core/src/main/resources/features/querybycursor/singlecluster/QueryByCursor.feature b/testing/integration-tests/search-test-core/src/main/resources/features/querybycursor/singlecluster/QueryByCursor.feature
index 3d3fe724922d87169047c60e4c114905a4468247..11ea0ab008a4fb26130a20882cb9344d682ab32f 100644
--- a/testing/integration-tests/search-test-core/src/main/resources/features/querybycursor/singlecluster/QueryByCursor.feature
+++ b/testing/integration-tests/search-test-core/src/main/resources/features/querybycursor/singlecluster/QueryByCursor.feature
@@ -87,3 +87,11 @@ Feature: Search recursively on cursor with different queries
       | "tenant1:search<timestamp>:*:*"    | None        | {"field":["data.OriginalOperator"],"order":["ASC"]}                          | "tenant1:search<timestamp>:1"   | "tenant1:search<timestamp>:2.0.0:3"   |
       | "tenant1:search<timestamp>:*:*"    | None        | {"field":["id"],"order":["DESC"]}                                            | "tenant1:search<timestamp>:3"   | "tenant1:search<timestamp>:1"   |
       | "tenant1:search<timestamp>:*:*"    | None        | {"field":["namespace","data.Rank"],"order":["ASC","DESC"]}                   | "tenant1:search<timestamp>:3"   | "tenant1:search<timestamp>:2.0.0:1"   |
+
+  @default
+  Scenario Outline: Verify that the query with cursor functions correctly when there is no result
+    When I send <query> with <kind>
+    Then I should get in response <final_count> records
+    Examples:
+      | kind                                       | query | final_count |
+      | "tenant1:not-existing-kind<timestamp>:*:*" | None  | 0           |