Detect fullfillment transactions indirectly
If the fullfillment transaction is broadcasted but the node either rejects or does not reply to the broadcast request, you can end up in a state where the fullfillment transaction is seen by the backend, but is not understood as a fullfillment transaction.
The outcome of this is that all the pledges that made up the fullfillment gets marked as revoked (as they are now spent).
To fix this edgecase for the future, we would need to add support to parse all spending transactions and if they are a fullfillment transaction for the campaign, we should store the fullfillment instead of marking the transaction as revoked.