diff --git a/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection.cc b/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection.cc
index 69a04ab..eae54b6 100644
--- a/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection.cc
+++ b/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection.cc
@@ -458,10 +458,9 @@
     }
 
     void ExecuteImmediateCommandsFIDL(uint32_t context_id, ::std::vector<uint8_t> command_data_vec,
-                                      ::fidl::VectorPtr<uint64_t> semaphores) override
+                                      ::std::vector<uint64_t> semaphore_vec) override
     {
         DLOG("ZirconPlatformConnection: ExecuteImmediateCommandsFIDL");
-        std::vector<uint64_t> semaphore_vec(semaphores.take());
         magma::Status status = delegate_->ExecuteImmediateCommands(
             context_id, command_data_vec.size(), command_data_vec.data(), semaphore_vec.size(),
             semaphore_vec.data());
diff --git a/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection_client.cc b/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection_client.cc
index 0e55acf..64f5a8a 100644
--- a/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection_client.cc
+++ b/garnet/lib/magma/src/magma_util/platform/zircon/zircon_platform_connection_client.cc
@@ -165,14 +165,14 @@
             //               interface without copying.
             std::vector<uint8_t> command_vec;
             command_vec.reserve(command_bytes);
-            fidl::VectorPtr<uint64_t> semaphore_vec;
-            semaphore_vec->reserve(num_semaphores);
+            std::vector<uint64_t> semaphore_vec;
+            semaphore_vec.reserve(num_semaphores);
             for (int i = 0; i < buffers_to_send; ++i) {
                 const auto& buffer = buffers[buffers_sent + i];
                 const auto buffer_data = static_cast<uint8_t*>(buffer.data);
                 std::copy(buffer_data, buffer_data + buffer.size, std::back_inserter(command_vec));
                 std::copy(buffer.semaphores, buffer.semaphores + buffer.semaphore_count,
-                          std::back_inserter(*semaphore_vec));
+                          std::back_inserter(semaphore_vec));
             }
             magma_status_t result = MagmaChannelStatus(magma_fidl_->ExecuteImmediateCommandsFIDL(
                 context_id, std::move(command_vec), std::move(semaphore_vec)));
diff --git a/sdk/fidl/fuchsia.gpu.magma/magma.fidl b/sdk/fidl/fuchsia.gpu.magma/magma.fidl
index 6e4b5e5..88f0c87 100644
--- a/sdk/fidl/fuchsia.gpu.magma/magma.fidl
+++ b/sdk/fidl/fuchsia.gpu.magma/magma.fidl
@@ -52,7 +52,7 @@
     // Submits a series of commands for execution on the GPU without using a command buffer.
     ExecuteImmediateCommandsFIDL(uint32 context_id,
                                  vector<uint8>:kReceiveBufferSize command_data,
-                                 vector<uint64>? semaphores);
+                                 vector<zx.koid> semaphores);
 
     // Retrieve the current magma error status.
     GetErrorFIDL() -> (int32 magma_status);
