diff --git a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java
index c27d26c..e77626e 100644
--- a/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java
+++ b/mediarouter/mediarouter/src/main/java/androidx/mediarouter/media/MediaRoute2Provider.java
@@ -271,19 +271,25 @@
             Log.w(TAG, "Exception while unparceling control hints.", ex);
         }
 
-        // Create group route descriptor
+        // Create or update the group route descriptor.
+        MediaRouteDescriptor.Builder groupDescriptorBuilder;
         if (groupDescriptor == null) {
-            groupDescriptor = new MediaRouteDescriptor.Builder(
+            groupDescriptorBuilder = new MediaRouteDescriptor.Builder(
                     routingController.getId(), groupRouteName)
                     .setConnectionState(MediaRouter.RouteInfo.CONNECTION_STATE_CONNECTED)
-                    .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE)
-                    .setVolume(routingController.getVolume())
-                    .setVolumeMax(routingController.getVolumeMax())
-                    .setVolumeHandling(routingController.getVolumeHandling())
-                    .addControlFilters(initialRouteDescriptor.getControlFilters())
-                    .addGroupMemberIds(selectedRouteIds)
-                    .build();
+                    .setPlaybackType(MediaRouter.RouteInfo.PLAYBACK_TYPE_REMOTE);
+        } else {
+            groupDescriptorBuilder = new MediaRouteDescriptor.Builder(groupDescriptor);
         }
+        groupDescriptor = groupDescriptorBuilder
+                .setVolume(routingController.getVolume())
+                .setVolumeMax(routingController.getVolumeMax())
+                .setVolumeHandling(routingController.getVolumeHandling())
+                .clearControlFilters()
+                .addControlFilters(initialRouteDescriptor.getControlFilters())
+                .clearGroupMemberIds()
+                .addGroupMemberIds(selectedRouteIds)
+                .build();
 
         // Create dynamic route descriptors
         List<String> selectableRouteIds =
