Not having the time just now to gather all the info, but if you look at the issues for the Lurch plugin,
There are a lot of issues related to communication with other clients, not being able to get/see OMEMO keys or conversations not being decrypted on both sides.
In my own experience,
gajim <-> conversations
gajim <-> pidgin (libpurple, Lurch)
gajim <-> chatsecure
chatsecure <-> conversations
Siskin, BeagleIM <-> conversations, chatsecure, gajim
These don’t work
pidgin <-> Conversations
pidgin <-> chatsecure (iOS)
pidgin <-> Monal (iOS, macOS)
pidgin <-> Siskin, Beagle IM (iOS, macOS)
So there’s a common trend there, pidgin+Lurch cannot correctly encrypt or decrypt OMEMO messages when communicating with other clients, and plenty of issues have been recorded on Github related to this with no solution still.
There’s a small possibility that this is due to my server, but after testing with other servers the issues remained.
Additionally, libpurple does NOT support MAM (Message archive managemnet), so aside from receiving offline messages (which it can do) and message carbons (which rely on other clients being online and syncing messages on the fly), libpurple clients do miss out on some messages…
Compound that with another fact: Conversations does NOT support “offline messages”! So if you want Conversations to be able to get all messages, the only reliable way I found was to have my serer, ejabberd, route ALL messages to MAM and skip offline messages. So that makes pidgin less reliable, Conversations more reliable… I can live with that, so can my friends, but it’s kindof a mess…
Mostly the OMEMO (Lurch library) part is a mess.