diff --git a/core/src/main/java/io/atomix/core/impl/CorePrimitiveRegistry.java b/core/src/main/java/io/atomix/core/impl/CorePrimitiveRegistry.java
index <HASH>..<HASH> 100644
--- a/core/src/main/java/io/atomix/core/impl/CorePrimitiveRegistry.java
+++ b/core/src/main/java/io/atomix/core/impl/CorePrimitiveRegistry.java
@@ -122,11 +122,11 @@ public class CorePrimitiveRegistry implements ManagedPrimitiveRegistry {
         "primitives",
         ConsistentMapType.instance(),
         partitionService.getSystemPartitionGroup());
-    return new ConsistentMapProxy(proxy, this)
-        .connect()
-        .thenApply(map -> {
+    return proxy.connect()
+        .thenApply(v -> {
+          ConsistentMapProxy mapProxy = new ConsistentMapProxy(proxy, this);
           primitives = new TranscodingAsyncConsistentMap<>(
-              map,
+              mapProxy,
               key -> key,
               key -> key,
               value -> value != null ? SERIALIZER.encode(value) : null,
Ensure primitive registry is started prior to creating any distributed primitives.