[#5141] fixed latest instance information cannot be obtained when cache instances is empty problem. (#5143)
diff --git a/.github/workflows/checkstyle.yml b/.github/workflows/checkstyle.yml
index e5e7309..3f97b9f 100644
--- a/.github/workflows/checkstyle.yml
+++ b/.github/workflows/checkstyle.yml
@@ -26,7 +26,7 @@
 jobs:
   checkstyle:
     timeout-minutes: 60
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-24.04
     steps:
       - uses: actions/checkout@v6
       - name: Set up jdk
diff --git a/.github/workflows/linelint.yml b/.github/workflows/linelint.yml
index 49bafa7..8d5112e 100644
--- a/.github/workflows/linelint.yml
+++ b/.github/workflows/linelint.yml
@@ -26,7 +26,7 @@
 jobs:
   linelint:
     timeout-minutes: 60
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-24.04
     steps:
       - uses: actions/checkout@v6
       - name: install linelint
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 0d2676f..24118c3 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -29,7 +29,7 @@
   build:
 
     timeout-minutes: 60
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-24.04
 
     steps:
     - uses: actions/checkout@v6
diff --git a/.github/workflows/rat_check.yml b/.github/workflows/rat_check.yml
index 4abcc94..c2db250 100644
--- a/.github/workflows/rat_check.yml
+++ b/.github/workflows/rat_check.yml
@@ -29,7 +29,7 @@
 jobs:
   rat_check:
     timeout-minutes: 60
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-24.04
     steps:
       - uses: actions/checkout@v6
       - name: Set up jdk
diff --git a/.github/workflows/typo_check.yml b/.github/workflows/typo_check.yml
index 745e634..999530a 100644
--- a/.github/workflows/typo_check.yml
+++ b/.github/workflows/typo_check.yml
@@ -26,7 +26,7 @@
 jobs:
   typo-check:
     timeout-minutes: 60
-    runs-on: ubuntu-latest
+    runs-on: ubuntu-24.04
     steps:
       - uses: actions/checkout@v6
         # To run the typo check locally, you can follow these steps:
diff --git a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
index 0056ed7..a1ab524 100644
--- a/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
+++ b/clients/service-center-client/src/main/java/org/apache/servicecomb/service/center/client/ServiceCenterDiscovery.java
@@ -17,6 +17,7 @@
 
 package org.apache.servicecomb.service.center.client;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
@@ -234,9 +235,15 @@
   }
 
   private synchronized void pullAllInstance() {
+    List<SubscriptionKey> emptyInstancesCache = new ArrayList<>();
     instancesCache.forEach((k, v) -> {
       pullInstance(k, v, true);
+      if (v.instancesCache.isEmpty()) {
+        emptyInstancesCache.add(k);
+      }
     });
+    emptyInstancesCache.forEach(instancesCache::remove);
+    emptyInstancesCache.clear();
   }
 
   private static String instanceToString(List<MicroserviceInstance> instances) {