diff --git a/src/box/box.cc b/src/box/box.cc
index 4ea445c3710b21774be10769f39c48adb4f8b10b..28ab9802325c915b06de4fe8a63ef304d018e3e9 100644
--- a/src/box/box.cc
+++ b/src/box/box.cc
@@ -4213,19 +4213,16 @@ box_process_vote(struct ballot *ballot)
 	ballot->registered_replica_uuids_size = i;
 }
 
-/** Insert a new cluster into _schema */
 static void
-box_set_replicaset_uuid(const struct tt_uuid *replicaset_uuid)
+box_set_replicaset_uuid(void)
 {
-	tt_uuid uu;
-	/* Use UUID from the config or generate a new one */
-	if (!tt_uuid_is_nil(replicaset_uuid))
-		uu = *replicaset_uuid;
-	else
-		tt_uuid_create(&uu);
-	/* Save replica set UUID in _schema */
+	struct tt_uuid replicaset_uuid;
+	if (box_check_replicaset_uuid(&replicaset_uuid) != 0)
+		diag_raise();
+	if (tt_uuid_is_nil(&replicaset_uuid))
+		tt_uuid_create(&replicaset_uuid);
 	if (boxk(IPROTO_INSERT, BOX_SCHEMA_ID, "[%s%s]", "cluster",
-		 tt_uuid_str(&uu)))
+		 tt_uuid_str(&replicaset_uuid)))
 		diag_raise();
 }
 
@@ -4326,7 +4323,7 @@ check_bootstrap_unanimity(void)
  * Initialize the first replica of a new replica set.
  */
 static void
-bootstrap_master(const struct tt_uuid *replicaset_uuid)
+bootstrap_master(void)
 {
 	/* Do not allow to bootstrap a readonly instance as master. */
 	if (cfg_geti("read_only") == 1) {
@@ -4347,7 +4344,7 @@ bootstrap_master(const struct tt_uuid *replicaset_uuid)
 	assert(replica_by_uuid(&INSTANCE_UUID)->id == 1);
 
 	/* Set UUID of a new replica set */
-	box_set_replicaset_uuid(replicaset_uuid);
+	box_set_replicaset_uuid();
 	if (bootstrap_strategy == BOOTSTRAP_STRATEGY_SUPERVISED)
 		box_set_bootstrap_leader_record();
 
@@ -4462,14 +4459,18 @@ bootstrap_from_master(struct replica *master)
  *                                  the leader of a new cluster
  */
 static void
-bootstrap(const struct tt_uuid *instance_uuid,
-	  const struct tt_uuid *replicaset_uuid,
-	  bool *is_bootstrap_leader)
+bootstrap(bool *is_bootstrap_leader)
 {
-	/* Initialize instance UUID. */
+	struct tt_uuid instance_uuid;
+	if (box_check_instance_uuid(&instance_uuid) != 0)
+		diag_raise();
+	struct tt_uuid replicaset_uuid;
+	if (box_check_replicaset_uuid(&replicaset_uuid) != 0)
+		diag_raise();
+
 	assert(tt_uuid_is_nil(&INSTANCE_UUID));
-	if (!tt_uuid_is_nil(instance_uuid))
-		INSTANCE_UUID = *instance_uuid;
+	if (!tt_uuid_is_nil(&instance_uuid))
+		INSTANCE_UUID = instance_uuid;
 	else
 		tt_uuid_create(&INSTANCE_UUID);
 
@@ -4518,16 +4519,16 @@ bootstrap(const struct tt_uuid *instance_uuid,
 
 		if (master == NULL ||
 		    tt_uuid_is_equal(&master->uuid, &INSTANCE_UUID)) {
-			bootstrap_master(replicaset_uuid);
+			bootstrap_master();
 			*is_bootstrap_leader = true;
 			break;
 		}
 
 		bool is_bootstrapped = bootstrap_from_master(master);
-		if (is_bootstrapped && !tt_uuid_is_nil(replicaset_uuid) &&
-		    !tt_uuid_is_equal(replicaset_uuid, &REPLICASET_UUID)) {
+		if (is_bootstrapped && !tt_uuid_is_nil(&replicaset_uuid) &&
+		    !tt_uuid_is_equal(&replicaset_uuid, &REPLICASET_UUID)) {
 			tnt_raise(ClientError, ER_REPLICASET_UUID_MISMATCH,
-				  tt_uuid_str(replicaset_uuid),
+				  tt_uuid_str(&replicaset_uuid),
 				  tt_uuid_str(&REPLICASET_UUID));
 		}
 		if (is_bootstrapped) {
@@ -4552,17 +4553,21 @@ bootstrap(const struct tt_uuid *instance_uuid,
  * to be rebootstrapped.
  */
 static void
-local_recovery(const struct tt_uuid *instance_uuid,
-	       const struct tt_uuid *replicaset_uuid,
-	       const struct vclock *checkpoint_vclock)
+local_recovery(const struct vclock *checkpoint_vclock)
 {
-	/* Check instance UUID. */
 	assert(!tt_uuid_is_nil(&INSTANCE_UUID));
+	struct tt_uuid instance_uuid;
+	if (box_check_instance_uuid(&instance_uuid) != 0)
+		diag_raise();
+	struct tt_uuid replicaset_uuid;
+	if (box_check_replicaset_uuid(&replicaset_uuid) != 0)
+		diag_raise();
+
 	replicaset_state = REPLICASET_RECOVERY;
-	if (!tt_uuid_is_nil(instance_uuid) &&
-	    !tt_uuid_is_equal(instance_uuid, &INSTANCE_UUID)) {
+	if (!tt_uuid_is_nil(&instance_uuid) &&
+	    !tt_uuid_is_equal(&instance_uuid, &INSTANCE_UUID)) {
 		tnt_raise(ClientError, ER_INSTANCE_UUID_MISMATCH,
-			  tt_uuid_str(instance_uuid),
+			  tt_uuid_str(&instance_uuid),
 			  tt_uuid_str(&INSTANCE_UUID));
 	}
 
@@ -4751,10 +4756,10 @@ local_recovery(const struct tt_uuid *instance_uuid,
 	engine_end_recovery_xc();
 
 	/* Check replica set UUID. */
-	if (!tt_uuid_is_nil(replicaset_uuid) &&
-	    !tt_uuid_is_equal(replicaset_uuid, &REPLICASET_UUID)) {
+	if (!tt_uuid_is_nil(&replicaset_uuid) &&
+	    !tt_uuid_is_equal(&replicaset_uuid, &REPLICASET_UUID)) {
 		tnt_raise(ClientError, ER_REPLICASET_UUID_MISMATCH,
-			  tt_uuid_str(replicaset_uuid),
+			  tt_uuid_str(&replicaset_uuid),
 			  tt_uuid_str(&REPLICASET_UUID));
 	}
 
@@ -4807,12 +4812,6 @@ box_cfg_xc(void)
 	box_storage_init();
 	title("loading");
 
-	struct tt_uuid instance_uuid, replicaset_uuid;
-	if (box_check_instance_uuid(&instance_uuid) != 0)
-		diag_raise();
-	if (box_check_replicaset_uuid(&replicaset_uuid) != 0)
-		diag_raise();
-
 	if (box_set_prepared_stmt_cache_size() != 0)
 		diag_raise();
 	box_set_net_msg_max();
@@ -4868,12 +4867,10 @@ box_cfg_xc(void)
 	bool is_bootstrap_leader = false;
 	if (checkpoint != NULL) {
 		/* Recover the instance from the local directory */
-		local_recovery(&instance_uuid, &replicaset_uuid,
-			       &checkpoint->vclock);
+		local_recovery(&checkpoint->vclock);
 	} else {
 		/* Bootstrap a new instance */
-		bootstrap(&instance_uuid, &replicaset_uuid,
-			  &is_bootstrap_leader);
+		bootstrap(&is_bootstrap_leader);
 	}
 	replicaset_state = REPLICASET_READY;