Inconsistency in reception awareness
sfieten opened this issue · 0 comments
When the current processing state of a User Messages is TRANSPORT_FAILURE
it will be resent by RetransmissionWorker
but when a Receipt is received for that same User Message it will not be processed by the ProcessReceipts
handler and the message will stay in the TRANSPORT_FAILURE
state.
This can leave a User Message in "failed" state when the last resend of the message fails, even if a Receipt is later received (most likely to happen on large messages where a "read time-out" occurs because the receiver takes too long to process the message and send the Receipt).
Therefore the ProcessReceipts
and RetransmissionWorker
should use the same set of processing states to determine whether a message is or could be waiting for a receipt.