diff --git a/src/com/android/settings/network/CarrierConfigChangedReceiver.java b/src/com/android/settings/network/CarrierConfigChangedReceiver.java
index 8a6d47d..d9ff03e 100644
--- a/src/com/android/settings/network/CarrierConfigChangedReceiver.java
+++ b/src/com/android/settings/network/CarrierConfigChangedReceiver.java
@@ -32,9 +32,20 @@
             CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED;
 
     private final CountDownLatch mLatch;
+    private final boolean mIsWaitingForValidSubId;
 
-    public CarrierConfigChangedReceiver(CountDownLatch latch) {
+    /**
+     * This is the CarrierConfigChanged receiver. If it receives the carrier config changed, then it
+     * call the CountDownLatch.countDown().
+     * If the "isWaitingForValidSubId" is true, then the receiver skip the carrier config changed
+     * with the subId = -1. The receiver executes the countDown when the CarrierConfigChanged
+     * with valid subId.
+     * If the "isWaitingForValidSubId" is false, then the receiver executes the countDown when
+     * receiving any CarrierConfigChanged.
+     */
+    public CarrierConfigChangedReceiver(CountDownLatch latch, boolean isWaitingForValidSubId) {
         mLatch = latch;
+        mIsWaitingForValidSubId = isWaitingForValidSubId;
     }
 
     public void registerOn(Context context) {
@@ -53,7 +64,8 @@
     }
 
     private void checkSubscriptionIndex(Intent intent) {
-        if (intent.hasExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX)) {
+        if (intent.hasExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX)
+                || !mIsWaitingForValidSubId) {
             int subId = intent.getIntExtra(CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX, -1);
             Log.i(TAG, "subId from config changed: " + subId);
             mLatch.countDown();
diff --git a/src/com/android/settings/network/UiccSlotUtil.java b/src/com/android/settings/network/UiccSlotUtil.java
index 7ba2e0f..7d8295b 100644
--- a/src/com/android/settings/network/UiccSlotUtil.java
+++ b/src/com/android/settings/network/UiccSlotUtil.java
@@ -141,7 +141,8 @@
                         inactiveRemovableSlot,
                         /*removable sim's port Id*/ TelephonyManager.DEFAULT_PORT_INDEX,
                         excludedLogicalSlotIndex),
-                context);
+                context,
+                /*isWaitingForValidSubId=*/ true);
     }
 
     /**
@@ -179,7 +180,8 @@
         performSwitchToSlot(telMgr,
                 prepareUiccSlotMappings(uiccSlotMappings, /*slot is not psim*/ false,
                         physicalSlotId, port, excludedLogicalSlotIndex),
-                context);
+                context,
+                /*isWaitingForValidSubId=*/ false);
     }
 
     /**
@@ -231,7 +233,8 @@
     }
 
     private static void performSwitchToSlot(TelephonyManager telMgr,
-            Collection<UiccSlotMapping> uiccSlotMappings, Context context)
+            Collection<UiccSlotMapping> uiccSlotMappings, Context context,
+            boolean isWaitingForValidSubId)
             throws UiccSlotsException {
         CarrierConfigChangedReceiver receiver = null;
         long waitingTimeMillis =
@@ -241,7 +244,7 @@
                         DEFAULT_WAIT_AFTER_SWITCH_TIMEOUT_MILLIS);
         try {
             CountDownLatch latch = new CountDownLatch(1);
-            receiver = new CarrierConfigChangedReceiver(latch);
+            receiver = new CarrierConfigChangedReceiver(latch, isWaitingForValidSubId);
             receiver.registerOn(context);
             telMgr.setSimSlotMapping(uiccSlotMappings);
             latch.await(waitingTimeMillis, TimeUnit.MILLISECONDS);
