diff --git a/firmware/2lib/2api.c b/firmware/2lib/2api.c
index 5070d21..a01c7f5 100644
--- a/firmware/2lib/2api.c
+++ b/firmware/2lib/2api.c
@@ -35,7 +35,6 @@
 
 int vb2api_fw_phase1(struct vb2_context *ctx)
 {
-	struct vb2_shared_data *sd = vb2_get_sd(ctx);
 	int rv;
 
 	/* Initialize the vboot context if it hasn't been yet */
@@ -47,7 +46,17 @@
 	/* Initialize secure data */
 	rv = vb2_secdata_init(ctx);
 	if (rv)
-		sd->recovery_reason = VB2_RECOVERY_SECDATA_INIT;
+		vb2_fail(ctx, VB2_RECOVERY_SECDATA_INIT, rv);
+
+	/* Load and parse the GBB header */
+	rv = vb2_fw_parse_gbb(ctx);
+	if (rv)
+		vb2_fail(ctx, VB2_RECOVERY_GBB_HEADER, rv);
+
+	/* Check for dev switch */
+	rv = vb2_check_dev_switch(ctx);
+	if (rv)
+		vb2_fail(ctx, VB2_RECOVERY_DEV_SWITCH, rv);
 
 	/*
 	 * Check for recovery.  Note that this function returns void, since
@@ -70,20 +79,6 @@
 {
 	int rv;
 
-	/* Load and parse the GBB header */
-	rv = vb2_fw_parse_gbb(ctx);
-	if (rv) {
-		vb2_fail(ctx, VB2_RECOVERY_GBB_HEADER, rv);
-		return rv;
-	}
-
-	/* Check for dev switch */
-	rv = vb2_check_dev_switch(ctx);
-	if (rv) {
-		vb2_fail(ctx, VB2_RECOVERY_DEV_SWITCH, rv);
-		return rv;
-	}
-
 	/* Always clear RAM when entering developer mode */
 	if (ctx->flags & VB2_CONTEXT_DEVELOPER_MODE)
 		ctx->flags |= VB2_CONTEXT_CLEAR_RAM;
diff --git a/firmware/2lib/2misc.c b/firmware/2lib/2misc.c
index c36372b..48357be 100644
--- a/firmware/2lib/2misc.c
+++ b/firmware/2lib/2misc.c
@@ -162,7 +162,7 @@
 	/* If forcing recovery, override recovery reason */
 	if (ctx->flags & VB2_CONTEXT_FORCE_RECOVERY_MODE) {
 		sd->recovery_reason = VB2_RECOVERY_RO_MANUAL;
-		sd->flags = VB2_SD_FLAG_MANUAL_RECOVERY;
+		sd->flags |= VB2_SD_FLAG_MANUAL_RECOVERY;
 	}
 
 	/* If recovery reason is non-zero, tell caller we need recovery mode */
diff --git a/tests/vb2_api_tests.c b/tests/vb2_api_tests.c
index 0d2773a..cf706d4 100644
--- a/tests/vb2_api_tests.c
+++ b/tests/vb2_api_tests.c
@@ -218,10 +218,30 @@
 	TEST_EQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, "  clear ram flag");
 
 	reset_common_data(FOR_MISC);
+	retval_vb2_fw_parse_gbb = VB2_ERROR_GBB_MAGIC;
+	TEST_EQ(vb2api_fw_phase1(&cc), VB2_ERROR_API_PHASE1_RECOVERY,
+		"phase1 gbb");
+	TEST_EQ(sd->recovery_reason, VB2_RECOVERY_GBB_HEADER,
+		"  recovery reason");
+	TEST_NEQ(cc.flags & VB2_CONTEXT_RECOVERY_MODE, 0, "  recovery flag");
+	TEST_NEQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, "  clear ram flag");
+
+
+	reset_common_data(FOR_MISC);
+	retval_vb2_check_dev_switch = VB2_ERROR_MOCK;
+	TEST_EQ(vb2api_fw_phase1(&cc), VB2_ERROR_API_PHASE1_RECOVERY,
+		"phase1 dev switch");
+	TEST_EQ(sd->recovery_reason, VB2_RECOVERY_DEV_SWITCH,
+		"  recovery reason");
+	TEST_NEQ(cc.flags & VB2_CONTEXT_RECOVERY_MODE, 0, "  recovery flag");
+	TEST_NEQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, "  clear ram flag");
+
+	reset_common_data(FOR_MISC);
 	cc.secdata[0] ^= 0x42;
-	TEST_EQ(vb2api_fw_phase1(&cc),
-		VB2_ERROR_API_PHASE1_RECOVERY, "phase1 secdata");
-	TEST_EQ(sd->recovery_reason, VB2_RECOVERY_SECDATA_INIT, "  recovery");
+	TEST_EQ(vb2api_fw_phase1(&cc), VB2_ERROR_API_PHASE1_RECOVERY,
+		"phase1 secdata");
+	TEST_EQ(sd->recovery_reason, VB2_RECOVERY_SECDATA_INIT,
+		"  recovery reason");
 	TEST_NEQ(cc.flags & VB2_CONTEXT_RECOVERY_MODE, 0, "  recovery flag");
 	TEST_NEQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, "  clear ram flag");
 }
@@ -233,18 +253,6 @@
 	TEST_EQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, "  clear ram flag");
 
 	reset_common_data(FOR_MISC);
-	retval_vb2_fw_parse_gbb = VB2_ERROR_GBB_MAGIC;
-	TEST_EQ(vb2api_fw_phase2(&cc), VB2_ERROR_GBB_MAGIC, "phase2 gbb");
-	TEST_EQ(vb2_nv_get(&cc, VB2_NV_RECOVERY_REQUEST),
-		VB2_RECOVERY_GBB_HEADER, "  recovery reason");
-
-	reset_common_data(FOR_MISC);
-	retval_vb2_check_dev_switch = VB2_ERROR_MOCK;
-	TEST_EQ(vb2api_fw_phase2(&cc), VB2_ERROR_MOCK, "phase2 dev switch");
-	TEST_EQ(vb2_nv_get(&cc, VB2_NV_RECOVERY_REQUEST),
-		VB2_RECOVERY_DEV_SWITCH, "  recovery reason");
-
-	reset_common_data(FOR_MISC);
 	cc.flags |= VB2_CONTEXT_DEVELOPER_MODE;
 	TEST_SUCC(vb2api_fw_phase2(&cc), "phase1 dev");
 	TEST_NEQ(cc.flags & VB2_CONTEXT_CLEAR_RAM, 0, "  clear ram flag");
