diff --git a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationAction.java b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationAction.java
index a69afa4..f9f2ffe 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationAction.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/replication/pull/api/ProjectInitializationAction.java
@@ -167,22 +167,24 @@
     }
 
     String projectName = gitRepositoryName.replace(".git", "");
-    try {
-      applyObjectCommand.applyObjects(
-          Project.nameKey(projectName),
-          input.getRefName(),
-          input.getRevisionsData(),
-          input.getLabel(),
-          input.getEventCreatedOn());
-    } catch (MissingLatestPatchSetException e) {
-      repLog.error(
-          "Init project API FAILED from {} for {} - configuration data cannot contain change meta refs: {}:{}",
-          input.getLabel(),
-          projectName,
-          input.getRefName(),
-          Arrays.toString(input.getRevisionsData()),
-          e);
-      throw new BadRequestException("Configuration data cannot contain change meta refs", e);
+    if (input.getRevisionsData() != null && input.getRevisionsData().length > 0) {
+      try {
+        applyObjectCommand.applyObjects(
+            Project.nameKey(projectName),
+            input.getRefName(),
+            input.getRevisionsData(),
+            input.getLabel(),
+            input.getEventCreatedOn());
+      } catch (MissingLatestPatchSetException e) {
+        repLog.error(
+            "Init project API FAILED from {} for {} - configuration data cannot contain change meta refs: {}:{}",
+            input.getLabel(),
+            projectName,
+            input.getRefName(),
+            Arrays.toString(input.getRevisionsData()),
+            e);
+        throw new BadRequestException("Configuration data cannot contain change meta refs", e);
+      }
     }
     projectCache.onCreateProject(Project.nameKey(projectName));
     // In case pull-replication is used in conjunction with multi-site, by convention the remote
