diff --git a/car-lib/src/android/car/vms/VmsPublisherClientService.java b/car-lib/src/android/car/vms/VmsPublisherClientService.java
index 13ee129..9bc69f3 100644
--- a/car-lib/src/android/car/vms/VmsPublisherClientService.java
+++ b/car-lib/src/android/car/vms/VmsPublisherClientService.java
@@ -36,6 +36,7 @@
 import com.android.internal.annotations.GuardedBy;
 
 import java.lang.ref.WeakReference;
+import java.util.Collections;
 import java.util.Objects;
 
 /**
@@ -59,6 +60,10 @@
     private static final boolean DBG = false;
     private static final String TAG = "VmsPublisherClientService";
 
+    private static final VmsSubscriptionState DEFAULT_SUBSCRIPTIONS =
+            new VmsSubscriptionState(0, Collections.emptySet(),
+                    Collections.emptySet());
+
     private final Object mLock = new Object();
 
     private Handler mHandler = new VmsEventHandler(this);
@@ -195,7 +200,7 @@
         try {
             return mVmsPublisherService.getSubscriptions();
         } catch (RemoteException e) {
-            return Car.handleRemoteExceptionFromCarService(this, e, null);
+            return Car.handleRemoteExceptionFromCarService(this, e, DEFAULT_SUBSCRIPTIONS);
         }
     }
 
diff --git a/car-lib/src/android/car/vms/VmsSubscriberManager.java b/car-lib/src/android/car/vms/VmsSubscriberManager.java
index 94e0d94..69f6ff6 100644
--- a/car-lib/src/android/car/vms/VmsSubscriberManager.java
+++ b/car-lib/src/android/car/vms/VmsSubscriberManager.java
@@ -29,6 +29,7 @@
 
 import com.android.internal.annotations.GuardedBy;
 
+import java.util.Collections;
 import java.util.Objects;
 import java.util.concurrent.Executor;
 
@@ -45,6 +46,10 @@
 public final class VmsSubscriberManager extends CarManagerBase {
     private static final String TAG = "VmsSubscriberManager";
 
+    private static final byte[] DEFAULT_PUBLISHER_INFO = new byte[0];
+    private static final VmsAvailableLayers DEFAULT_AVAILABLE_LAYERS =
+            new VmsAvailableLayers(Collections.emptySet(), 0);
+
     private final IVmsSubscriberService mVmsSubscriberService;
     private final IVmsSubscriberClient mSubscriberManagerClient;
     private final Object mClientCallbackLock = new Object();
@@ -172,7 +177,7 @@
         try {
             return mVmsSubscriberService.getPublisherInfo(publisherId);
         } catch (RemoteException e) {
-            return handleRemoteExceptionFromCarService(e, null);
+            return handleRemoteExceptionFromCarService(e, DEFAULT_PUBLISHER_INFO);
         }
     }
 
@@ -186,7 +191,7 @@
         try {
             return mVmsSubscriberService.getAvailableLayers();
         } catch (RemoteException e) {
-            return handleRemoteExceptionFromCarService(e, null);
+            return handleRemoteExceptionFromCarService(e, DEFAULT_AVAILABLE_LAYERS);
         }
     }
 
