diff --git a/android/fd_server/src/main.rs b/android/fd_server/src/main.rs
index 07f0896..d4744e4 100644
--- a/android/fd_server/src/main.rs
+++ b/android/fd_server/src/main.rs
@@ -130,7 +130,7 @@
     debug!("fd_server is starting as a rpc service.");
     let service = FdService::new_binder(fd_pool).as_binder();
     // TODO(b/259920193): Only accept connections from the intended guest VM.
-    let server = RpcServer::new_vsock(service, libc::VMADDR_CID_ANY, RPC_SERVICE_PORT)?;
+    let (server, _) = RpcServer::new_vsock(service, libc::VMADDR_CID_ANY, RPC_SERVICE_PORT)?;
     debug!("fd_server is ready");
 
     // Close the ready-fd if we were given one to signal our readiness.
diff --git a/android/virtmgr/src/aidl.rs b/android/virtmgr/src/aidl.rs
index 23652d2..c587df9 100644
--- a/android/virtmgr/src/aidl.rs
+++ b/android/virtmgr/src/aidl.rs
@@ -447,7 +447,7 @@
 
         // Start VM service listening for connections from the new CID on port=CID.
         let port = cid;
-        let vm_server = RpcServer::new_vsock(service, cid, port)
+        let (vm_server, _) = RpcServer::new_vsock(service, cid, port)
             .context(format!("Could not start RpcServer on port {port}"))
             .or_service_specific_exception(-1)?;
         vm_server.start();
@@ -469,7 +469,7 @@
             // Start VM service listening for connections from the new CID on port=CID.
             let port = cid;
             match RpcServer::new_vsock(service, cid, port) {
-                Ok(vm_server) => {
+                Ok((vm_server, _)) => {
                     vm_server.start();
                     return Ok((VmContext::new(vm_context, vm_server), cid, temp_dir));
                 }
diff --git a/libs/libvm_payload/src/lib.rs b/libs/libvm_payload/src/lib.rs
index 40f7b79..eb81752 100644
--- a/libs/libvm_payload/src/lib.rs
+++ b/libs/libvm_payload/src/lib.rs
@@ -144,7 +144,7 @@
     let service = unsafe { new_spibinder(service) };
     if let Some(service) = service {
         match RpcServer::new_vsock(service, libc::VMADDR_CID_HOST, port) {
-            Ok(server) => {
+            Ok((server, _)) => {
                 if let Some(on_ready) = on_ready {
                     // SAFETY: We're calling the callback with the parameter specified within the
                     // allowed lifetime.
