signalapp / Signal-Android

A private messenger for Android.
https://signal.org
GNU Affero General Public License v3.0
25.64k stars 6.16k forks source link

[2.6.4] No notifications shown on new message receive #2703

Closed nRaecheR closed 9 years ago

nRaecheR commented 9 years ago

After updating to version 2.6.4 from 2.5.x via Google Play Store no notifications about new received messages were shown when application runs in the background. The notifications and the messages are only received when running the the foregound, which leads to missed messages.

This is new with 2.6.4, I never had the problem with any previous version.

Samsung GT-i9505 (jfltexx) Android 4.4.4 (KOT49H.I9505XXUGNK4) OS Host: SWDD6301 TextSecure 2.6.4

rhodey commented 9 years ago

unable to reproduce on my Nexus 5 running stock Android Lollipop and TS 2.6.4, could be KitKat specific? anyone else with a KitKat device able to reproduce this? @nRaecheR does this happen with both SMS and push messages?

steps I took to test:

1) unlock TextSecure 2) open recent activities view 3) force close (swipe) TextSecure 4) have @mcginty send me test push and SMS messages 5) phone vibrates and LED blinks for each message, also notifications exist for each.

nRaecheR commented 9 years ago

Mh, it seems that it works most of the time but sometimes the notifications are missing. I think it happened when switching from Wifi internet to mobile/VPN access to the same network but I'm not sure.

Tested only with push messages, I don't use SMS anymore.

crash2kx commented 9 years ago

I've been having the same issue. Sent a secure message to my friend last night a 1.31am, he replied at 1.49am (from his iPhone) and I only received the message once I opened TextSecure this morning.

This issue has been happening several times over the past few days with other contacts as well. The last few times I missed notifications I was in a club (so my guess is spotty reception) and I would only receive the message (as in incoming message beep) once I forgrounded the app the next day. This time, however, it happened at home.

I really hope this issue will be fixed very soon. Not being able to receive notifications at times is a death sentence for this app as it makes it impossible for me to convince my friends to switch over.

Thanks!

https://gist.github.com/anonymous/e370c390350063a9169a

agrajaghh commented 9 years ago

I don't think its a problem with notifications, looks more like a GCM issue...

crash2kx commented 9 years ago

Yes, it doesn't look like the messages are received but the notification is skipped but rather that the messages are never received at all until the app is opened manually. Interestingly, last time I had this issue on Sunday once I opened the app I received several messages from the same contact at once that he had sent the night before. So it's not message specific. Hope this helps.

agrajaghh commented 9 years ago

Is it never working or just sometimes not?

crash2kx commented 9 years ago

Just sometimes not. Most of the time it works perfectly.

crash2kx commented 9 years ago

It just happened again. I didn't receive two messages until I opened the application and once I did that two messages from 48 minutes ago came in.

https://gist.github.com/a4d2be5ac699d378f20c

moxie0 commented 9 years ago

If this is happening, it means GCM push messages aren't making it to your device. The most common reasons for this are:

  1. You've disabled "background data" for TextSecure or for Google Play Services in Android's system settings.
  2. You've used a tool like Titanium Backup with TextSecure.
  3. You're running a custom ROM with a bad gapps install.
  4. You have a firewall (or VPN) that is blocking GCM connections.
crash2kx commented 9 years ago

Thanks for the reply! This is weird, because I am running pure stock Android without any modifications (except root), no Greenify or other mods that could deactivate background data. All other apps (Twitter, WhatsApp, Gmail) push things just fine. Plus, TextSecure works fine most of the time anyway.

zmanian commented 9 years ago

So GCM is not reliable message transport and is generally becoming less reliable.

The fix that OWS put in place is check via websocket for any messages that are on disk when a GCM message is received or when you open the app.

You will experience this as having an unread message that appears when you open the app that no notification appears for.

I see this behavior in twitter, fb messenger and other messaging apps because it seems like most dev teams are mitigating GCM reliability issues in the same way.

On Tue, Mar 17, 2015 at 9:12 AM crash2kx notifications@github.com wrote:

Thanks for the reply! This is weird, because I am running pure stock Android without any modifications (except root), no Greenify or other mods that could deactivate background data. All other apps (Twitter, WhatsApp, Gmail) push things just fine. Plus, TextSecure works fine most of the time anyway.

— Reply to this email directly or view it on GitHub https://github.com/WhisperSystems/TextSecure/issues/2703#issuecomment-82438386 .

moxie0 commented 9 years ago

@crash2kx Does this happen more often on one network rather than another? Do you have a VPN or anything like that configured?

crash2kx commented 9 years ago

I'm on my home WiFi right now, no VPN configured. But it also happened to me while I was outside on my network's 3G this weekend. It usually works, both on WiFi and 3G. I remember receiving WhatsApp messages just fine during the same time frame while the TextSecure messages were missing.

Hnasar commented 9 years ago

Just want to chime in that this is occasionally (i.e. on and off for a few days now) happeneing to me and my friend as well. I'm on CM 12 running the recent beta, she is on xperia stock 4.4 running the most recent non-beta version.

I haven't tracked whether it happened to me when on wifi or cell network. I'll keep an eye out.

moxie0 commented 9 years ago

It's also entirely possible that this is a client bug. What we'd need to figure it out is a debug log that covers the missed notification. Steps would be:

  1. Before you open the app, you somehow notice that you're missing notifications.
  2. Without yet opening the app, have someone send you a message.
  3. Wait and see if a notification appears.
  4. If you're not notified, open the app (the message should then appear) and immediately capture a debug log.

The key is that all this happens before you open the app.

crash2kx commented 9 years ago

My second debug log I posted here https://gist.github.com/a4d2be5ac699d378f20c was captured right after I opened the app and received the missed messages (which had been sent 48 minutes before). I hadn't even opened the message yet. Perhaps something can be found in there. It is difficult to replicate the problem as receiving messages works most of the time, but I will try and do it in case I know the bug is happening. Once a message does not get delivered all following messages from that contact don't get delivered either until the app is opened. I don't know if a message from another contact after the bug has occured will trigger a notification, however.

moxie0 commented 9 years ago

@crash2kx Yep, unfortunately in that scenario we need the debug log from 48 minutes earlier. I realize that it's difficult to reproduce, since it requires realizing that you're missing notifications before you open the app.

crash2kx commented 9 years ago

As luck would have it, I asked my friend to send me a test message and it arrived without a hitch. I'll stay on it. Kinda weird to be hoping for a message not to get through to be able to capture a debug log :D

TheStash commented 9 years ago

I had somehow a similar issue but was not sure if it was associated with the VPN or not, the VPN is Bitmask's demo so it should not block GCM but is a bit slow, in my case with two Nexus 5 running Lolipop on the same network one received the group messages and the other didn't unless either fully rebooting the device or manually opening the app... i was actually waiting not to open an issue until i find out if it is associated with the VPN or not.

AndrewTheLott commented 9 years ago

Just to confirm, I've been getting the same on my OnePlus One with the default/current Cyanogen 11.0 (4.4.4). There's no VPN running when it happens, but I haven't noticed whether it happens more on Wi-Fi than off.

jeremymasters commented 9 years ago

Just opened the app to messages my brother sent me awhile ago. It chirped at me like I had just received them but I know it was awhile ago. I hadn't done anything in Textsecure since messaging him awhile ago. Here is a log. https://gist.github.com/a4d48273e45a664d09b9

moxie0 commented 9 years ago

@jeremymasters Thanks, but we need the log from "awhile ago." If you know someone has sent you a message, but you haven't received it, ask them to send another one before opening the app and taking the log.

jeremymasters commented 9 years ago

@moxie0 How far do these logs stretch back? From looking at mine it's grabbing an mms which was about 6 hours ago through now which would include the time of the messages that were not "received" until I opened the app.

jeremymasters commented 9 years ago

If the app was open the whole time, does that change things?

jeremymasters commented 9 years ago

Sorry to keep bombarding here, but last night I had the "sender" version of the issue last night. I sent about 4 messages to someone and the backgrounds all turned bright blue. I did not get delivery receipts though for about 10 minutes. I was connected to wifi at the time. I decided to shut off wifi and switch to 4G. Right after I turned off my wifi and it registered as off, all 4 of my messages got the delivery receipt and I received another message from my friend, all within 1 second. After this happened, I eventually turned wifi back on and communication went as normal. I don't know exactly if/how this is linked but thought maybe it would at least help troubleshoot.

crash2kx commented 9 years ago

Okay, what happened now was that I had the app foregrounded for most of the time, checking for new messages from my friend whom I was waiting for to reply, but I still didn't receive any new message. It was only until I sent my friend another message asking "where are you" that I suddenly received two messages, one from 29 minutes ago saying "I'll be there in 25 minutes" and a fresh one just now saying "I'm here". I don't know if the debug actually caught it this time, but here it is anyway. https://gist.github.com/anonymous/d80b5d7d7a1a131ca05c

merkste commented 9 years ago

Unfortunately I can confirm the issue since the update to 2.7.1 but cannot provide any new context info.

moxie0 commented 9 years ago

@merkste Yeah, 2.7.1 doesn't include any changes in this area. I just pushed 2.8.0 to the beta channel, though, and I'll be curious to see if that has any effect.

moxie0 commented 9 years ago

I just pushed some server-side changes that might help to production 10min ago, please let me know if anyone continues to see this on 2.7.1 or 2.8.0. Thanks.

jeremymasters commented 9 years ago

Will do. Sorry if I've been annoying about this. I know you're neck-deep in work.

crash2kx commented 9 years ago

I got a message 3 minutes ago and it notified me as normal. When I picked up my phone to respond I opened the app and immediately got a second message. Interestingly enough it was also dated 3 minutes ago, so my friend had apparently sent 2 messages in a row, but only the first one had come through normally. Hope the debug log goes back enough to catch the bug occuring in the 3 minute time frame this time. Would love for this bug to get fixed.

https://gist.github.com/anonymous/d06df7fbcaa168ea9482

moxie0 commented 9 years ago

@crash2kx If you're comfortable doing it, would you mind emailing me your phone number and the timestamp on that delayed message? moxie.github@moxie.org

deutrino commented 9 years ago

I'm still seeing these issues on 2.7.1. I tried to dump a debug log this morning but I got nothing but the usual header (android and TS version, etc). They are still happening regardless of my data connectivity (typically NATed wifi on a couple different Comcast connections, and 3G).

Sometimes messages will stop going through (with me as the sender - I stop getting delivery confirms) in the middle of an active conversation. It is tough to coordinate to get debug logs there, and it does happen less often, but often enough (in my experience) that some users are likely to consider the app unreliable.

Before secure SMS transport was removed, falling back to secure SMS appeared to ram a message through if the data transport was not working. I'm not sure that works with insecure SMS.

moxie0 commented 9 years ago

Before secure SMS transport was removed, falling back to secure SMS appeared to ram a message through if the data transport was not working.

FYI, it did no such thing.

bjoli commented 9 years ago

I am still experiencing this on the 2.8 beta. From textsecure and signal. Will try to send a debug log according to moxie's description.

Sinlicious commented 9 years ago

@moxie0 & others:

Just signed up to chime on this - from what I'm seeing it could be a mixture of 'delayed' messages (#970) or simply not being notified as this issue would suggest. What is happening is; I'm having to open up TextSecure to 'jump start' any notifications/messages received - the weird thing is, they are not sitting there 'bolded' as if I didn't get the notification, but more-so actually appear when I'm killing the application and opening TextSecure again (which makes me think they are being delayed/late).

I'm using 2.7.1 on a Android 5.0.2 - Hangouts has/was always been fine (which obviously utilizes GCM) before I made the switch (along with my friends) to TextSecure.

I've tried re-installing (aswell as re-exchanging keys) to no avail. What 'seems' to work (and probably placebo as its not always 100%) is to kill TextSecure (via Recents), re-open, and 50/50 messages will suddenly appear (with pre-dated Timestamps).

A Timestamp example will be like "30 minutes ago" when I know for a fact (prior to closing TextSecure) I've been staring at the Conversation window waiting for a reply. Unsure what logs/debugs things I can provide (or how) - but happy to help in anyway!

EDIT: Oh and I should mention (75% of 'Other Parties') are using Signal - not sure if this is related or more Server related.

hult-jaeger commented 9 years ago

TS @ 2.7.1; Android @ 4.0.4

can confirm that there are no notification messages from TS itself (in the background, or whatever you want to call it). Only when TS is opened manually, it will report on new messages. This happens to me and 3 friends on mine. All of them on Android TS.

moxie0 commented 9 years ago

@Sinlicious Thanks for the update but we'll need a debug log from before and after you kill TS to be able to take any action.

moxie0 commented 9 years ago

@Sinlicious Also has this behavior happened (where you have to kill the app and then reopen it) within the past 4 or 5 days?

deutrino commented 9 years ago

Before secure SMS transport was removed, falling back to secure SMS appeared to ram a message through if the data transport was not working.

FYI, it did no such thing.

Please note my use of the word 'appeared' - in attempting to develop a workaround, I reasoned that falling back to secure SMS might get a message through when the data transport was failing, and on the few occasions I managed to experiment with it before the last release, sometimes the non-confirmed data transport messages would get confirmed pretty quickly after a secure SMS - I suspected due to the user opening TS on the remote end.

If you'll bear with me for a moment, it doesn't matter how this or that bit of code behaves to the end user, but rather how the whole app appears to behave. Users are accustomed to SMS being near real-time, particularly in ongoing conversations. Users will attempt to develop workarounds when TextSecure doesn't provide this. I should have clarified that comment with "... I suspect because it was causing the remote user to wake TS or the TS instance to be woken," but I didn't.

nh2 commented 9 years ago

@moxie0 Here's a log in which I sent a message from another phone (+*********32) with text 2336 at 23:36 my time, and it arrived 3-4 minutes later (the receiving phone had the screen off during all this time).

https://gist.github.com/anonymous/2ae6b4135e32912c017c

Also, the sending phone did not get a delivery report until it actually arrived on the other phone.

Please let me know if this is helpful or if you need a different log.

May I ask, how do you manage to read anything out of this, given that there don't even seem to be any time stamps in this log?

Sinlicious commented 9 years ago

@moxie0 Thanks for the prompt reply - with regards to the first question do I simply go to Settings > Advanced > Submit Debug Log to achieve what you want? If I understand you want me to get logs specifically at:

  1. After sending a few messages via Push;
  2. Closing TextSecure, killing it via Recents, and re-opening.

Any other cases? I'm unsure when/how (unless I call the 'Other Parties') if/when they have sent a reply, so do you only want a log in Situation 2 after opening TextSecure resulted in delayed messages?

With regards to when this has occurred... I've only been using TextSecure for past two weeks or so, and I can't pinpoint with 100% accuracy, but I would say more recently it has had this behaviour - though I've acquired more TextSecure converts in last week - so it may have something to do with Signal users vs. Android and alike.

Let me know if you need anything else - it seems that others are also having this issue above, but also in the #970 Issue thread.

jeremymasters commented 9 years ago

I hadn't had this go on for awhile but it happened again last night. Was messaging with a friend and at a seemingly random time, I sent a message, received a confirmation checkmark but the info shows a "sent" but not a "received" time.

moxie0 commented 9 years ago

@jeremymasters If you got a delivery receipt it was delivered.

nh2 commented 9 years ago

Is it clear what the cause / exact fix was?

devurandom commented 9 years ago

@nh2: Watch out for when @moxie0 pushes the v1.2.5 tag to WhisperSystems/libtextsecure-java.

crash2kx commented 9 years ago

thanks everyone fixing this. hope our debugs were helpful :)

crash2kx commented 9 years ago

Bad news. I just happened to witness this bug again. I sent my friend a message at 1pm and as soon as it arrived I received an earlier message from him from 11:42am.

I don't know if the debug log helps but here it is anyway https://gist.github.com/anonymous/13a1cbdfec152dda2add

nRaecheR commented 9 years ago

Yes, same for me...2.10.2 didn't fix the bug and so it must be re-opened here...it would be better to get confirmation that the bug is actually fixed before closing the bug...

rhodey commented 9 years ago

there are existing issue reports open about messages being received late, this report was about notifications not showing up at all when receiving a message-- regardless of issues with delivery time, or delivery receipts, if you receive a message and no accompanying notification then this issue could possibly be reopened.

however, as noted above, GCM is not perfect, so it is possible and out of our control that sometimes a notification will not show up for received messages. this should happen very infrequently, if it happens frequently then TS should be able to improve on that.