Page MenuHomePhabricator

Notification that is shown in special page but not in flyout
Closed, InvalidPublic

Description

As reported at https://en.wikipedia.org/wiki/Wikipedia_talk:Notifications#Notification_error (permalink),
User:Soetermans explains that he has one notification (edit-user-talk) which is showing in his Special:Notifications page, but is not showing in the messages flyout.
The message was received at roughly 03:30 UTC on 24 February

It appears the message was possibly triggered by another user's act of unwatchlisting Soetermans' userpage, at that moment, which somehow caused a null-edit. Possibly that aspect is covered by the work ongoing in T123843: Making a null edit triggers a new message notification although null edit is not recorded in page history?

Event Timeline

Restricted Application added subscribers: StudiesWorld, Aklapper. · View Herald Transcript

This is what I found in the database:

mysql:research@s3-analytics-slave [enwiki]> select user_id from user where user_name='Soetermans';
+---------+
| user_id |
+---------+
| 1289606 |
+---------+
1 row in set (0.11 sec)

mysql:research@x1-analytics-slave [enwiki]> select * from echo_notification where notification_user = 1289606 and notification_timestamp between '20160224030000' and '20160224040000';
+--------------------+-------------------+------------------------+-----------------------------+--------------------------+----------------------------------+----------------------------------+
| notification_event | notification_user | notification_timestamp | notification_read_timestamp | notification_bundle_base | notification_bundle_hash         | notification_bundle_display_hash |
+--------------------+-------------------+------------------------+-----------------------------+--------------------------+----------------------------------+----------------------------------+
|           73533996 |           1289606 | 20160224031302         | 20160224062509              |                        1 | a8487a91d5dbd194aaf9484d90e51f1e | d27d44855202959b5f540904681154a1 |
+--------------------+-------------------+------------------------+-----------------------------+--------------------------+----------------------------------+----------------------------------+
1 row in set (0.01 sec)

mysql:research@x1-analytics-slave [enwiki]> select * from echo_event where event_id =73533996;
+----------+----------------+---------------+----------------+----------------+----------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------------+---------------+
| event_id | event_type     | event_variant | event_agent_id | event_agent_ip | event_page_namespace | event_page_title | event_extra                                                                                                                            | event_page_id |
+----------+----------------+---------------+----------------+----------------+----------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------------+---------------+
| 73533996 | edit-user-talk | NULL          |       26664968 | NULL           |                 NULL | NULL             | a:5:{s:5:"revid";i:706522748;s:9:"minoredit";b:0;s:13:"section-title";s:0:"";s:12:"section-text";s:0:"";s:11:"target-page";i:4895511;} |       4895511 |
+----------+----------------+---------------+----------------+----------------+----------------------+------------------+----------------------------------------------------------------------------------------------------------------------------------------+---------------+
1 row in set (0.00 sec)

mysql:research@s3-analytics-slave [enwiki]> select user_name from user where user_id=26664968;
+-------------+
| user_name   |
+-------------+
| Kiyoshiendo |
+-------------+
1 row in set (0.02 sec)

mysql:research@s3-analytics-slave [enwiki]> select page_namespace, page_title from page where page_id = 4895511;
+----------------+------------+
| page_namespace | page_title |
+----------------+------------+
|              3 | Soetermans |
+----------------+------------+
1 row in set (0.00 sec)

mysql:research@s3-analytics-slave [enwiki]> select rev_timestamp, rev_user_text, rev_comment from revision where rev_id=706522748;
+----------------+------------------------+----------------------------------------------------------+
| rev_timestamp  | rev_user_text          | rev_comment                                              |
+----------------+------------------------+----------------------------------------------------------+
| 20160223200953 | Mr. Magoo and McBarker | /* Concerning AfD about Layton characters */ new section |
+----------------+------------------------+----------------------------------------------------------+
1 row in set (0.07 sec)

This looks a lot like the null edit notifications we saw with T123843: the revid in question is older than the notification (by about 4 hours) and is attributed to a different user, because it's simply the most recent revision of that user talk page at the time of the null edit. So this lends credence to the null edit theory. I don't know if I believe that "unwatching the page somehow caused a null edit", but it doesn't seem too unlikely that User:Kiyoshiendo could have accidentally null-edited the page while trying to unwatch it, or that a tool/gadget/whatever acting on their behalf could have done so.

What puzzles me is why this notification wouldn't appear in the flyout. Deciding whether a notification can be rendered (reasons for not rendering mostly involve deletion and oversight) is the same code path for the flyout and the special page (and for the mobile flyout, which is different until we merge Moriel's patch fixing that). There also doesn't seem to be anything weird about the echo_event row. It's normal for event_page_namespace and event_page_title to be NULL, because they were deprecated in favor of event_page_id. It also seems to be normal for event_variant to be NULL, and the JSON blob in event_extra contains what I would expect it to (section-text and section-title are empty, but you'd expect that for an edit that didn't add a section, and everything else looks normal).

From a closer reading of User:Soetermans's report, I think the following happened:

  1. "It said I have message on my talk page": I think they saw the OBOD and clicked on it.
  2. Clicking the OBOD navigates to their user talk page. They visually inspect this page and see no message they haven't already seen before. The OBOD has gone away, and they have no unread notifications because (I believe) visiting one's user talk page marks one's edit-user-talk notifications as read.
  3. For some reason, they check their notifications using the special page instead of the flyout.
  4. They see the notification there and are confused.

So my theory is that they never looked at the flyout.

@Quiddity could you verify this with User:Soetermans? If they do report seeing this notification on the special page but not in the flyout (and this can't be explained by the 25-notification limit), could you have them take a screenshot?

Screenshots received via email. The notification does appear in the messages flyout after all. Closing as (invalid) misunderstanding. :-)