Page MenuHomePhabricator

Multiple notifications when subscribed to mass-posted topics
Open, Needs TriagePublicBUG REPORT

Description

Steps to replicate the issue (include links if applicable):

  • Use the (otherwise very cool) topic subscription feature to subscribe (at exactly one page) to a mass-posted topic, for example, Tech News: 2023-15 posted by MediaWikia message delivery bot on en-WP at the Village Pump. (Tech News threads probably don't get much conversation but I asked for clarification on an item and got such useful responses I subscribed.)
  • Wait until some human user or archiving bot deletes or archives their own particular copies of the mass-posted topic.
  • Check your notifications and observe the huge increase in volume...

What happens?:
For each and every deletion or archival of users' copies of the mass-post, wiki-wide, a notification appears, for example:
Topic "Tech News: 2023-15" was archived or removed from User talk: Jonesey95.
You might no longer receive notifications about this topic.

What should have happened instead?:
I should receive notifications for changes (edits, deletions, archival) to the thread only on the page where I subscribed.
Another editor at a thread I started suggested that " a more fine-grained time stamp for tracking subscriptions" might be a possible approach. Neither of us know how feasible that is, though.

Event Timeline

In case people are not aware of the practical issue here, I'm now getting a:

Topic "Scottywong case opened" was archived or removed from User talk:xxx

each time this archives off a user's talk page.

Just to demonstrate:

image.png (1×1 px, 350 KB)

It's not a bug per-se, it's working-as-designed because it's supposed to allow subscriptions to survive a page-move. But MassMessages specifically hit an edge case on it because they wind up with identical topic IDs on multiple pages...

Great spot, thank you for filing @JohnFromPinckney; we've filed T349316 to investigate what approaches are available to address this issue.

I experience this too. It affects my staff account (Trizek (WMF)), which is used to contribute to content delivered by massmessage, or used to use massmessages, but only for a few messages all at French Wikipedia.

But it also affects my personal account (Trizek). I got a notification for this diff https://fr.wikipedia.org/w/index.php?title=Discussion_utilisateur:XDamx&oldid=prev&diff=212036213#Actualit%C3%A9s_techniques_n%C2%B0_2024-05 while I never subscribed, watched or even visited this user talk page. And I never edited this issue of Tech News with my personal account.

Our current proposal would be to show a warning message whenever a user tries to subscribe to a comment which is duplicated on more than N pages (e.g. N=10), requiring the user to confirm they want to subscribe knowing that they may receive multiple notifications. Calculating this number is a fairly cheap lookup in the DT items database.

Thanks Ed (and everyone who's looked at this). That current proposal would at least reduce the surprising/confusing effect of unexpected notifications, although IMO N should be an even smaller number, like 5.

I documented the limitation in the docs, I'll update it when the proposal will become a patch.

This comment was removed by Trizek-WMF.

We do store the page that the original subscription happened on. Maybe we could special-case the behavior a bit, and check when generating notifications whether the page generating the notification is the one that user originally subscribed on and whether the topic ID currently exists on that page? If it does, we could suppress notifications from other pages. Then when it no longer exists on that page, we could devolve to the current behavior.

Drawback: this would involve notably more queries, or at least a more complicatedly-joined query.

It's not a bug per-se [...] But MassMessages specifically hit an edge case on it because they wind up with identical topic IDs on multiple pages...

If different discussions get the same ID, then that surely is a bug.

Our current proposal would be to show a warning message whenever a user tries to subscribe to a comment which is duplicated on more than N pages (e.g. N=10), requiring the user to confirm they want to subscribe knowing that they may receive multiple notifications. Calculating this number is a fairly cheap lookup in the DT items database.

This does not cater for the (eminently reasonable and highly likely) use-case of a user wanting to subscribe to discussion of the post on one page; but not on every page.

I know this a bug, but as a user sending a mass message, it's also a feature: My mass messages usually direct users to leave replies / feedback on a linked project/talk page, but some users nevertheless just reply below the mass message. If I want to monitor all of my mass messages to make sure I don't miss any of those direct replies, I just need to subscribe to one of the messages in order to be subscribed to all of them.

If different discussions get the same ID, then that surely is a bug.

I meant it's not a bug in the sense that it's expected behavior given the constraints of the system. In this case those are:

  1. DiscussionTools needs to work with existing talk page wikitext markup
  2. Topic IDs need to be preserved across moves between pages (which are non-atomic! we can't count on the order the move will happen in)

If we'd decided that moving a topic wiped out all subscriptions to it, this wouldn't be an issue. However, that'd be a choice that might have seemed at least as buggy to people. At least here the edge-case is constrained to one particular class of message -- and as Johannes notes, it's even useful-if-unintuitive to some people.

I have encountered this bug today. I am subscribed to [[:en:Wikipedia:Village pump (technical)#Tech News: 2025-41]]. I received an alert:

Massmessagebug.png (220×632 px, 18 KB)

This alert linked to https://en.wikipedia.org/w/index.php?title=User_talk%3AMr._Stradivarius&oldid=prev&diff=1316050168, an archiving of a user talk page that is not on my watchlist.