The problem happens at least in case of escalus_tcp transport due to escalus_connection:maybe_forward_to_owner running the filter before escalus_tcp:forward_to_owner, which extracts SM elements intended for automatic handling. In other words, the filter might filter out SM <r/> elements, which ought to be handled by escalus_tcp. This problem occurred when trying to run an AMOC scenario with SM enabled, but the filter set to only allow messages:
escalus_connection:set_filter_predicate(Client, fun escalus_pred:is_message/1)
The problem happens at least in case of
escalus_tcptransport due toescalus_connection:maybe_forward_to_ownerrunning the filter beforeescalus_tcp:forward_to_owner, which extracts SM elements intended for automatic handling. In other words, the filter might filter out SM<r/>elements, which ought to be handled byescalus_tcp. This problem occurred when trying to run an AMOC scenario with SM enabled, but the filter set to only allow messages: