Afaik it was the client implementation, the encryption logic is the same just redone in a different language.
The issue i had was that when using unstable network connections(mostly mobile) it would miss one message or something like that and all following messages wouldnt be decryptable.
This seems to be the version where the switch happened https://github.com/element-hq/element-android/releases/tag/v1.6.0
Also maybe cops, soldiers and security guards.