ChatSecure-iOS
ChatSecure-iOS copied to clipboard
Push Message received, actual message not
Chatsecure correctly receives a push-message with a text "New Message", but when it's then opened, the (OMEMO-encrypted) message doesn't show up. Restarting the app (to maybe induce re-fetching undread messages ?) doesn't help and the message is permanently lost for the intended recipient.
This is the only device that is connected to the account and if messages are received while the app is connected to the server, OMEMO-encrypted messages work fine.
Server? % reported by https://compliance.conversations.im ?
88% on https://compliance.conversations.im/server/omfa.de/
Missing mod_omemo_all_access, but other clients on the same server also running chatsecure do not have this issue.
There were some fixes is the latest mod_cloud* modules, try to update prosody modules to trunk or something.
There were some fixes is the latest mod_cloud* modules, try to update prosody modules to trunk or something.
what other mod_cloud* modules are there? And last change in mod_cloud_notify was back in June this year.
I experience the same issue with my ChatSecure client. Other users with Conversations on Android don't have this issue. I use Prosody, too, with version 0.11.1 with the latest updates of the community modules. My server reaches a score of 94% (missing srv records).
I can confirm this, too: Conversations on Android works, ChatSecure loses messages. Server also runs on Prosody 0.11.1. My server also reaches a score of 94% (also missing srv records). Is there any way, I can help narrow this down?
I can confirm hist, too. Prosody 0.11.2, everything else like the others said...
Same problem here. Prosody 0.11.2. Conversations and Gajim working properly.
So can we hope for this problem to be fixed in ChatSecure?
Or do you think that using a different server (like ejabberd 18.12.1-2) will fix the problem? Switching all my users is a lot of work. Anyone working with ejabberd without problems? The high number of positive ratings in the app store is irritating, given the many lost messages I have seen.
Is there a message to be received (confirmed on another device), or is it an issue caused by the server sending out a "high priority" push notification for non-message content?
On Wed, Sep 18, 2019 at 4:18 AM Alexmark1 [email protected] wrote:
Same problem here. Prosody 0.11.2. Conversations and Gajim working properly.
So can we hope for this problem to be fixed in ChatSecure?
Or do you think that using a different server (like ejabberd 18.12.1-2) will fix the problem? Switching all my users is a lot of work. Anyone working with ejabberd without problems? The high number of positive ratings in the app store is irritating, given the many lost messages I have seen.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ChatSecure/ChatSecure-iOS/issues/1067?email_source=notifications&email_token=AAD6UHZJUV5BVRG5AO4IWUTQKIE73A5CNFSM4GBTHBOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD67W6IQ#issuecomment-532639522, or mute the thread https://github.com/notifications/unsubscribe-auth/AAD6UH5YWV46SM7XD46QZRTQKIE73ANCNFSM4GBTHBOA .
The general problem I see is a high percentage of lost messages. There are a couple of reported issues here pointing to that. Typically (although I am not sure this is always the case) a "New Message" notification apperars in the lockscreen, but when I unlock the device and start ChatSecure, there is no new message. When I then go to my Android device running "Conversations", the message is usally there. This even happens in the middle of ongoing chats, when I just put the IOS device on the table for a couple of minutes. I would say around 10% of messages are lost overall. I have two users with different types of Apple devices on different types of networks having the same problem. All are on the same server (chinwag.im).
In the early days of the Conversations app I had seen similar problems and after discussion with the developers I understood that those were fixed by properly supporting MAM and Message Carbons, client and server side. But I am not an expert in XMPP.
Edit: to clarify, the problem described above happens while only one IOS device running ChatSecure with my account is online. I have more devices with that account running Conversations and Gajim, but they are typically not online at the same time.
@chrisballinger: could you give an indication if you have any plans to solve the reliability issues when it comes to delivery of messages? I am not trying to push you; just that right now there is no workable XMPP client for iOS and if that situation is going to persist I may need to migrate all my users to a completely different technology.
@Alexmark1: if there's no further development here, keep an eye on monal.im / https://github.com/anurodhp/Monal what looks quite promising currently
@Alexmark1 I can't really control what other people's XMPP servers are doing. If the XMPP server sends a message indicating there is a push notification, our pubsub bridge will send two APNs notifications - one high priority "New Message!" and one low priority for background fetch to hopefully grab the actual contents.
Unfortunately the background fetching it's not entirely reliable because of throttling by the operating system.
If your users are seeing a push message, but then not actually seeing a message - the chances are that either MAM isn't working properly on the server, or that the message could not be decrypted.
My main concern is the large number of lost messages in general (around 50% loss over several testing attempts, just to indicate an order of magnitude). There are a couple of issue reports pointing in the same direction here (#1165, #1151, #1146, #1144, #1126, #1125). The server I am using and many of those mentioned in the linked reports have the required feature set according to https://compliance.conversations.im and work very well with Gajim and Conversations, both of which I am using for years now on a regular basis.
So either the problem is with Chatsecure, or the XMPP ecosystem is simply too fragmented to work reliably across platforms and applications.
@chrisballinger: this could explain a lot: https://monal.im/blog/omemo-is-broken-in-general-across-the-ecosystem/. Does ChatSecure silently drop messages that could not be decrypted, under certain conditions?
That's a good lead
On Sat, Jan 11, 2020 at 1:48 AM Alexmark1 [email protected] wrote:
@chrisballinger https://github.com/chrisballinger: this could explain a lot: https://monal.im/blog/omemo-is-broken-in-general-across-the-ecosystem/ http://url. Does ChatSecure silently drop messages that could not be decrypted, under certain conditions?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ChatSecure/ChatSecure-iOS/issues/1067?email_source=notifications&email_token=AAD6UH6HFPAZRS7LBDFE6KDQ5GIYLA5CNFSM4GBTHBOKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIV6DMY#issuecomment-573301171, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAD6UH4ASGNL4F2HZMCLC2LQ5GIYLANCNFSM4GBTHBOA .
This issue makes chatsecure pretty useless, I can confirm both issues about lost messages and redundant notifications. Running current version and I did reset push registration.
@chrisballinger has the message loss issue been fixed in Chatsecure. We are using omemo. Can you please guide us if yes and how can we take the fix in our code. I have taken your code 2 months back. Is in the recent release you have done any fixes?
I've had this issue with one of my contacts (A) who uses ChatSecure, and later installed Gajim to make sure the lost messages can at least be received and read there. I (B) am using Conversations and Gajim. If A doesn't write from ChatSecure for a while, that OMEMO fingerprint will appear as inactive. This usually happens after a few hours, e.g. overnight. If B sends a message to A at this point, a "New Message" notification appears, but nothing will actually show up in-app. If A then sends a message to B from ChatSecure, that OMEMO fingerprint will appear as active again. A then minimizes ChatSecure. Now, sending a message from B to A will trigger a "New Message" notification, and switching into ChatSecure will load the sent message. I suspect that Gajim and Conversations don't encrypt messages for inactive OMEMO keys, and what would show up as "This message was encrypted with OMEMO, but not for your device" in Gajim and "Message was not encrypted for this device" in Conversations, is simply discarded by ChatSecure. I'm not sure why the ChatSecure OMEMO fingerprint switches to inactive so quickly or frequently - maybe ChatSecure sends some signals to the XMPP server when the app is killed by iOS? Based on my observations, simply going offline with a device for a few days shouldn't make that OMEMO fingerprint go inactive, as I sometimes do that with both Conversations and Gajim. I hope this helps. Let me know if there's anything I can do for debugging.
Issue seems to persists. In my observed case, Chatsecure crashed after opening the notification (was "new message!" without actual message content), after restart the message was not there. Other clients received this message flawlessly.