diff --git a/src/components/records/RecordSearch.js b/src/components/records/RecordSearch.js
index 4a3a859a37e48a5d3f8efe50b73caebd51021a63..d06a933723f7ef82e09c0cd0c981586f362a8903 100644
--- a/src/components/records/RecordSearch.js
+++ b/src/components/records/RecordSearch.js
@@ -92,7 +92,11 @@ export function RecordSearch({ iocName, rowType }) {
   // update pagination whenever search result total pages change
   useEffect(() => {
     setTotalCount((prev) => {
-      if (prev === pagination.totalCount && prev > 0) {
+      if (
+        prev === pagination.totalCount &&
+        prev > 0 &&
+        prev === records?.totalCount
+      ) {
         return prev;
       } else {
         return records?.totalCount ?? 0;
diff --git a/src/views/records/RecordListView.js b/src/views/records/RecordListView.js
index b91b07aa0dc3d6c61fdcd8d01a139c209629ae30..c8b4b0e787d46c5095ad33ce35d41acbb50d2e08 100644
--- a/src/views/records/RecordListView.js
+++ b/src/views/records/RecordListView.js
@@ -52,6 +52,8 @@ export function RecordListView() {
     { navigateMode: "replace" }
   );
   const [recordFilter, setRecordFilter] = useState(null);
+  // used to request record list again when tab is switched, but request it only once! (totalRecord is a random number that is generated by ChannelFinder)
+  const [tabSwitched, setTabSwitched] = useState(false);
 
   const handleTabChange = useCallback(
     (event, tab) => {
@@ -74,6 +76,8 @@ export function RecordListView() {
     } else if (tab === 2) {
       setRecordFilter("INACTIVE");
     }
+
+    setTabSwitched(true);
   };
 
   useEffect(() => {
@@ -108,13 +112,13 @@ export function RecordListView() {
   // update pagination whenever search result total pages change
   useEffect(() => {
     setTotalCount((prev) => {
-      if (prev === pagination.totalCount && prev > 0) {
+      if (prev === pagination.totalCount && prev > 0 && !tabSwitched) {
         return prev;
       } else {
         return records?.totalCount ?? 0;
       }
     });
-  }, [pagination, records?.totalCount, setTotalCount]);
+  }, [pagination, records?.totalCount, setTotalCount, tabSwitched]);
 
   // whenever url state changes, update pagination
   useEffect(() => {
@@ -133,6 +137,7 @@ export function RecordListView() {
     requestParams.pv_status = recordFilter;
     requestParams.record_name = deserialize(urlState.query);
     getRecords(requestParams);
+    setTabSwitched(false);
 
     return () => {
       abort();