We spent significant time over the last couple of years on chat notification reliability Alex.
When did you abandon Chat? @jordan-violet are you still experiencing the issue in the OP?
We spent significant time over the last couple of years on chat notification reliability Alex.
When did you abandon Chat? @jordan-violet are you still experiencing the issue in the OP?
Thanks for your efforts Sam. For me personally the notifications worked most of the time, but would randomly drop out and require refreshing the Discourse page to get them working again - but historically have not worked at all, or worked sporadically, and definitely have a habit of being turned off completely at discourse upgrade.
We stopped using chat this week after adopting it at the start of 2023. Notifications in Google Chat just worked for the whole team including those who weâve had regular issues with or never managed to make them work.
Hello @lindsey we are experiencing the same issue. Do you have any update from your side about the status and a potential fix?
Hi Micha,
can you try to make a more detailed report of when you are not getting the notifications please? There are a lot of cases (ios, android, pwa, discourse hub, desktop safari,chrome,firefox, which kind of notification: public channel?dm? thread? all? were you browsing when you should have received it?..)
I started having a look at this code, but I feel a big issue is around âexpectationsâ
There are a big family of what I would consider known issues that we can improve.
push notification time window. This caused: @mention, I happen to visit the app within 60 seconds. No @mention.To be honest @lindsey / @j.jaffeux / @pmusaraj I feel like âgoing loudâ would probably result in removing the vast majority of issues people have and complaints we have seen over the years regarding chat notifications.
update_message.rb that is publishing a message within a transaction. (in multi threaded envs this can go missing)Basically take away lots of the âoops we should not have notified you logicâ by default.
Turned off completely at Discourse upgrade, for self hosters can definitely be due to connectivity issues to the push gateway. Maybe upgrades on some servers take days, maybe its an intranet for 24 hours for some reason.
Relevant code (via Gemini 3 pro)
The logic that kills subscriptions after 3 failures in 24 hours is located in the handle_generic_error method.
The logic checking if a user is online (âdebounceâ) and skipping the push notification is centrally located here. This relies on SiteSetting.push_notification_time_window_mins.
The UpdateMessage service wraps the publish step within a database transaction. This can cause race conditions where the notification job tries to read the message before the transaction commits.
The code explicitly filters for following: true when processing mentions for public channels, preventing notifications for users who donât follow the channel.
The tag generation logic that dedups notifications per channel (collapsing them) is defined here:
Itâs already something we have done a lot in last years, I removed a lot of the âsmartâ code, which is always hard to follow and prone to interrogations. But yes there are still various codepaths.
Obligatory infamous slack notification flowchart:
This is why I was asking for more details above, there are so many situationsâŠ
I would LOVE to see âgoing loudâ as a system-wide preset.
âSorry, Iâm only seeing this message now â the push notifications didnât work again. I want my Slack/Whatsapp/Signal/XYZ backâ
This is by far the biggest issue weâre facing with our adoption of Discourse as an enterprise social intranet.