diff --git a/src/box/vy_run.c b/src/box/vy_run.c
index cf287f5d4aca993dcb10ffd1309badd3ba2844a7..40dd19e53543f32facc4da707d611223c8cafeb7 100644
--- a/src/box/vy_run.c
+++ b/src/box/vy_run.c
@@ -1879,7 +1879,7 @@ vy_run_recover(struct vy_run *run, const char *dir,
 		diag_set(ClientError, ER_INVALID_INDEX_FILE, path,
 			 tt_sprintf("Wrong xrow type (expected %d, got %u)",
 				    VY_INDEX_RUN_INFO, (unsigned)xrow.type));
-		return -1;
+		goto fail_close;
 	}
 	if (vy_run_info_decode(&run->info, &xrow, path) != 0)
 		goto fail_close;