Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android app shows countless notifications rapidly for old messages, already read in the desktop app #8445

Open
4 tasks done
6lancmange opened this issue Dec 13, 2018 · 23 comments

Comments

@6lancmange
Copy link

6lancmange commented Dec 13, 2018


Bug description

Signal Android receives notifications for messages that have been read on Signal Desktop. Apparently this also happens when both apps are open – but since the message comes to both apps at the same moment, I guess that isn't so weird. Also, I never use both at the same time, so I can't vouch for that. However: when the Android app has been offline for some time while a conversation was continued in the desktop app, all hell breaks loose when the Android app is turned on (connected to the internet). Messages – SEEN messages from the desktop – start coming in, one by one, each with a notification. Well, almost, because they come faster than the notifications are able to catch up. Then, as they keep coming, they are immediately getting ticked as read. But for a few minutes, the phone rings, buzzes, and/or displays a visual notification – depending on the person's settings – unless you completely turn off the notifications prior to turning on the internet connection. This has been an issue for years and remains one, I don't believe this is a feature (certainly not a good one).

It used to be a problem on the desktop too, but it was fixed by making a loading screen. The app isn't usable until the messages are downloaded. This might not be the best way, but I guess it's better than crazy notifications firing five times a second. Maybe something similar could work on the mobile too? Or, if this is possible, maybe allow the user to message immediately, while syncing, starting at the most recent messages, instead of chronologically. That allows the user to get a quick reminder about the last topic, and doesn't keep flashing new messages in the conversation – they would quietly come in the background.

Another idea: get the message, first check the read status, and then if it's really a new message, notify. I don't know about coding it, but it sounds simple enough and should fix the whole problem. This comes from an earlier issue where the poster pointed out that the read status appears only after the notification has already sounded.

There could also be only one notification for messages that have already been read on the desktop, and then notifications for messages that are new (first seen now, when looking at the Android app). I even think it might be the case that when I get completely new messages while the Android app is on, there is only one notification per conversation, even if that person sent me more messages. So it should apply even more to already read ones.

Other mentions of, or related to this issue:

  • in Read state sometimes doesn't get synced from desktop app to Android app #5519, the original post isn't exactly about this, but this comment describes exactly this problem.
  • #6273 is about the divider between old and new messages. I haven't had a chance to check how this works (and if), but it sounds like the divider illustrates how the desktop messages are treated as new even though they've been read.
  • #6126 is this exact issue.
  • in Disable notification sounds from phone while using desktop client  #4905 the poster mentions both apps receiving messages and notifications at the same time when they're both online, but particularly this reply is about the problem when coming back from offline state, and mentions the way it should be: "Can you fix the client to download and process all of the synced states before deciding whether to show any notifications?"
  • #3165 is one of the earlier mentions of this, and doesn't explicitly talk about the circumstances, but it's probably the same problem.
  • in #5410 it is pointed out that the issue is a duplicate of very similar ones. But that issue was posted over 2,5 years ago and it's still relevant. Not to mention the earlier issues.
  • #5741 mentions the phone buzzing while using the desktop, but it's related.
  • and finally #778, from February 2014, which may be the first mention of this problem. It describes the same thing: phone's been off while conversation continued on desktop, phone gets back online, cue many, many notifications. @moxie0 self-assigned also in 2014, no other actions there happened. More happened on Multiple/repeating notification sounds/vibrations/alerts are annoying #3165 instead (lots of mentions mostly), although there is no asignee or milestones there. Moxie closed that issue with this commit saying that it fixes two other issues, even though it doesn't fix the real problem of a LOT of notifications coming after a longer time offline, as opposed to while using the desktop and mobile at the same time.

Steps to reproduce

  • have a conversation in the Android app
  • close the Android app, turn off the internet connection
  • continue the conversation in the desktop app (well, perhaps this and the first point not necessary – it doesn't have to be the same conversation, or it could be several)
  • turn on the internet connection and Android app (if it still receives messages while not active, you don't have to turn it on. But I used to not get messages after I think force quitting the app until opening it, so I'm pointing it out)

Actual result: The Android app displays and sounds tens of notifications, getting every single message as if it were a new one, only later marking it as read.
Expected result: The messages that have already been read on the desktop app should be synced quietly and in the background, as they are already part of the conversation. If there are any new, unread messages, they can get a notification, either first (if syncing the newest, unread messages first) or after the earlier part has been updated (if syncing in chronological order).

Device info

Device: HTC 10
Android version: 8.0.0
Signal version: 4.30.8
Desktop: Ubuntu 18.04.1 LTS, Signal version 1.18.1

Link to debug log

android: https://debuglogs.org/a746288528426141256c835a6ebb61b215b45cebfb598592c6ce659754b3238d
desktop: https://debuglogs.org/b5987c5baecc47485d368ed87d66933f44a8b7ed20f4c9c93324fba04237a503
Note: I had a desktop conversation with a number ending in 84. There are three more recent messages from a number ending in 13 that were sent later, when my Signal was completely offline, and came to my Android app as new, unread messages. When I turned the desktop app on to get the debug log, there was of course the loading screen, no notifications, and these messages were correctly shown as read.

Oh, and by the way: while getting the phone debug log, I noticed an EMBARRASSING spelling error in the translated content. How should I report it for fixing?

@vishnuquilon
Copy link

vishnuquilon commented Dec 24, 2018

We 6 of us are facing the same issues on Windows 10 and Ubuntu 18.04 and Mobile One+2, Vivo V3 Max, Asus Zenphone Max Android version 6.0.1 and 5.1.1

@ati3
Copy link

ati3 commented Dec 27, 2018

Same issues between Windows 10 - Android 5.1.1 and Linux mint 19.1 - Android 8.1.0.

@MrDetonia
Copy link

Experiencing the same issue, and generally notification annoyances when re-connecting to a network as #8648 mentions.

I could see a sensible fix being that notifications are only fired once per conversation (e.g. "Multiple messages in x"). In busy group conversations especially this would prevent a lot of spam notifications which can render the device barely usable for a period of time.

@RalfJung
Copy link

RalfJung commented Aug 8, 2019

This is also an issue when the messages have not been read in the desktop app yet: my phone was just offline for a night (and my laptop, too); when I connected it in the morning it took a solid minute until it stopped vibrating. Seems like some group chat has been rather active. Those were all new unread messages, but telling me about hem for a minute without pause isn't helping anyone, it is just annoying.

@endolith
Copy link

endolith commented Nov 22, 2019

Sorry for being annoying, but this bug is super annoying, making my phone explode multiple times every day. Is there any hope of fixing it? Or any workaround (other than uninstalling Signal and using something else)?

@agis
Copy link

agis commented Nov 26, 2019

I also wanted to chime in and say that for me this is the biggest UX killer when I'm using Signal on my phone.

@jonathanturcotte
Copy link

It seems like an easy fix would be to implement some kind of spam prevention generally, just by debouncing the notification function with some kind of low timeout.

@endolith
Copy link

For me the easy fix was switching to Telegram... (Unsubscribing from this issue now)

@swertz
Copy link

swertz commented Mar 22, 2021

It seems this is still an issue - IMHO the single most annoying issue with using Signal at this point.

@Thorgrimson
Copy link

Thorgrimson commented May 31, 2021

Are there any plans on fixing this? its a realy annoying issue and signal is the only messenger I'm aware of that act like discribed above...

@greyson-signal
Copy link
Contributor

It seems like an easy fix would be to implement some kind of spam prevention generally, just by debouncing the notification function with some kind of low timeout.

We did this a while ago, it'll kick in after 5 messages, and we'll only show one notification per second. We might be able to be more strict, but we generally want to be pretty careful here.

Regarding showing notifications for messages you've already read -- we don't know that they're read at the time we show the notification. Read receipts from desktop are synced via messages as well, and we're not getting that until we've already posted the notification in this case.

The bigger question is why are you getting notifications in big bursts instead of consistently over time. This is likely a problem with your device throttling our notification via battery optimizations. You can read our support content on this here.

Finally, I know processing messages should be faster. Improving performance here is non-trivial and something we're always working to improve.

@creideiki
Copy link

The bigger question is why are you getting notifications in big bursts instead of consistently over time. This is likely a problem with your device throttling our notification via battery optimizations.

Or the phone was turned off overnight, dumping notifications for 12h of group chats when turned on.

@RalfJung
Copy link

RalfJung commented Jun 2, 2021

We did this a while ago, it'll kick in after 5 messages, and we'll only show one notification per second. We might be able to be more strict, but we generally want to be pretty careful here.

"One notification per second" for 50 messages is still quite annoying for 50 seconds... during which the phone is basically unusable. And 50 messages at once is not unusual in an active group chat when the phone was offline for a day or two.

@jonathanturcotte
Copy link

"One notification per second" for 50 messages is still quite annoying for 50 seconds... during which the phone is basically unusable. And 50 messages at once is not unusual in an active group chat when the phone was offline for a day or two.

Specifically I notice that Messenger will ping your phone 3 or 4 times in quick succession when it catches up in group chats, and then no longer show notifications for the next 50 messages that come in during the next few seconds. I believe that emulating this behaviour would be ideal if possible.

@fedexcain
Copy link

We did this a while ago, it'll kick in after 5 messages, and we'll only show one notification per second. We might be able to be more strict, but we generally want to be pretty careful here.

I think you should reevaluate the way you could bundle notifications. Maybe it's feasible to bundle more aggressively when the app is running in the background? Having a timer of 1 to 5 seconds to bundle notifications of incoming messages but also reset the timer up to a maximum of 30 to 60 seconds may be a solution.

From a user experience standpoint, I would prefer one notification which is 'at most' one minute late over my phone ringing every second for a minute just so other notifications may be presented more promptly.

Additionally a solution which gives you more time to process messages and read receipts may allow the app to correctly identify already seen messages and not provide any notifications at all. You could even reset the maximum time of the timer to the latest message which hasn't been already seen, so this whole problem may go away.

Can you maybe elaborate a bit why you want to be that careful when it comes to bundling notifications?

@stale
Copy link

stale bot commented Jan 26, 2022

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@stale stale bot added the wontfix label Jan 26, 2022
@blmpl
Copy link

blmpl commented Jan 26, 2022

yes, it is still relevant - I don't think anyone work on solving this case because of little interest in Signal Desktop users :(

@stale stale bot removed the wontfix label Jan 26, 2022
@stale
Copy link

stale bot commented Mar 27, 2022

Is this still relevant? If so, what is blocking it? Is there anything you can do to help move it forward?

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@stale stale bot added the wontfix label Mar 27, 2022
@RalfJung
Copy link

Yes it's still relevant.

And it's somewhat irritating how issues that are not being worked on are being treated in this repository...

@stale stale bot removed the wontfix label Mar 27, 2022
@gediminasel
Copy link

Still relevant and so annoying 😢😢. Can't you just load all the queued messages (incl. read receipts) from the server before displaying notifications?

The bigger question is why are you getting notifications in big bursts instead of consistently over time. This is likely a problem with your device throttling our notification via battery optimizations.

Some people just don't have WiFi/Mobile turned on all the time. And Signal explodes after every reconnection.

@cody-signal
Copy link
Contributor

Gah stalebot, we're going to be looking into this soon...ish...hopefully. :)

@gediminasel
Copy link

Any updates?

@gabefair
Copy link

I think this is more likely to happen when google play framework is missing from device. (websocket mode)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests