diff --git a/src/fwbank.c b/src/fwbank.c
index 251f6315af1db6f1d44ec9b914558628a3fed399..74c6856e58a0ed67ed2ada1f68452c2216f012d0 100644
--- a/src/fwbank.c
+++ b/src/fwbank.c
@@ -469,15 +469,15 @@ static bool is_upgrade_success(struct blob_buf *output_bb)
 
 	// Parse the blob buffer for the "result" field
 	if (blobmsg_parse(&policy, 1, &tb, blobmsg_data(output_bb->head), blobmsg_len(output_bb->head)) != 0) {
-		BBFDM_ERR("Failed to parse blobmsg data");
-		return false;
+		BBFDM_INFO("Failed to parse upgrade result, assuming success");
+		return true;
 	}
 
 	// Check if the "result" field exists and is of the correct type
 	if (tb && blobmsg_type(tb) == BLOBMSG_TYPE_STRING)
-		return (strcmp(blobmsg_get_string(tb), "ok") == 0) ? true : false;
+		return (strcmp(blobmsg_get_string(tb), "failure") == 0) ? false : true;
 
-	return false;
+	return true;
 }
 
 struct blob_buf *sysmngr_fwbank_dump(void)