I think the underlying issue here is streaming failures only account for problems during the file send. Not any subsequent errors.
We should probably add an acknowledgement to the streaming operation that it was processed by the receiver correctly.
It seems the stream receive task (and thus the stream sesssion) is only completed on 2.1 and 2.2 after the files are processed (otherwise it just hangs), but on 3.0 it's always completed even if there was a failure, what seems more critical. In any case, we should probably fail the stream session if there is a problem while processing the received data.