diff --git a/src/hooks/pagination.js b/src/hooks/pagination.js
index 7631f1dfd88c6a4359e97134b057f0aa3a5ffe54..e976fec5d732879248f1a0e760f020bcdae0a1ca 100644
--- a/src/hooks/pagination.js
+++ b/src/hooks/pagination.js
@@ -52,6 +52,7 @@ export const usePagination = ({
 
   return {
     pagination,
-    setPagination
+    setPagination,
+    setTotalCount
   };
 };
diff --git a/src/views/records/RecordListView.js b/src/views/records/RecordListView.js
index ac35ce4a6629e26ea14f0a0a6cafda6fa38b28d0..81f7db29d349b4e9fbbb106e048aa19f686a2517 100644
--- a/src/views/records/RecordListView.js
+++ b/src/views/records/RecordListView.js
@@ -98,7 +98,7 @@ export function RecordListView() {
 
   const rowsPerPage = [20, 50];
 
-  const { pagination, setPagination } = usePagination({
+  const { pagination, setPagination, setTotalCount } = usePagination({
     rowsPerPageOptions: rowsPerPage,
     initLimit: urlPagination.rows ?? rowsPerPage[0],
     initPage: urlPagination.page ?? 0
@@ -106,8 +106,14 @@ export function RecordListView() {
 
   // update pagination whenever search result total pages change
   useEffect(() => {
-    setPagination({ totalCount: records?.totalCount ?? 0 });
-  }, [setPagination, records?.totalCount]);
+    setTotalCount((prev) => {
+      if (prev === pagination.totalCount && prev > 0) {
+        return prev;
+      } else {
+        return records?.totalCount ?? 0;
+      }
+    });
+  }, [pagination, records?.totalCount, setTotalCount]);
 
   // whenever url state changes, update pagination
   useEffect(() => {