diff --git a/mod/silverbox/box.c b/mod/silverbox/box.c
index 78a82c3d657e74783e7ac06e2e145b2660cde435..d8b14104d0e4a3dc1b0fb09d7e4bc1ff334f87ad 100644
--- a/mod/silverbox/box.c
+++ b/mod/silverbox/box.c
@@ -1336,9 +1336,9 @@ snap_apply(struct recovery_state *r __unused__, struct tbuf *t)
 	if (tbuf_peek(t, sizeof(struct row_v11)) == NULL)
 		return -1;
 
-	/* ignore tag for now */
 	u16 tag  = read_u16(t);
-	assert(tag == 0);
+	if (tag != 0)
+		return -1;
 
 	row = box_snap_row(t);
 	txn->in_recover = true;
@@ -1379,8 +1379,10 @@ xlog_apply(struct recovery_state *r __unused__, struct tbuf *t)
 	if (tbuf_peek(t, sizeof(struct row_v11)) == NULL)
 		return -1;
 
-	u16 tag  = read_u16(t);
-	assert(tag == 0);
+	u16 tag = read_u16(t);
+	if (tag != 0)
+		return -1;
+
 	u16 type = read_u16(t);
 	if (box_dispach(txn, RW, type, t) != 0)
 		return -1;