`OlmMachine::decrypt_room_event` should detect redacted events and return a different error
Currently if a redacted event is passed to OlmMachine::decrypt_room_event it will fail with error UnsupportedAlgorithm(?).
Given that the event is redacted, there won't be an algorithmfield, so it's expected.
Nonetheless this will produce UTDs for redacted events, and sdk clients could falsely display them as UTD (in ER case report false positive UTD metrics).
Could it be possible to special case redacted event and return a successful decryption with an empty content, of type m.room.message? (and unknown alg)?
Redacted event could be detected by checking existence of unsigned.redacted_because
I don't think we should pretend that it's m.room.message, but yeah this is a bug.
Ah, I initially thought this was (partially) about the timeline used by EX, but it isn't. @poljar wdyt about checking for unsigned.redacted_because in OlmMachine::decrypt_room_event and returning a new error variant MegolmError::EventIsRedacted?
Yeah, that sounds better than returning an empty m.room.message.