From instrumentation I found the Packet that breaks the conversation is a RDMA WRITE MIDDLE packet and it has a mtu of 4096 and residual length of 0. This is why the check in [1] set the state to RESPST_ERR_LENGTH. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/infiniband/sw/rxe/rxe_resp.c#n475