Page MenuHomePhabricator

"Uncaught DOMException: Element.closest: '' is not a valid selector"
Closed, ResolvedPublicBUG REPORT

Description

Screenshot 2024-01-30 at 8.29.19 AM.png (614×2 px, 107 KB)

500,000 errors in last 2 hrs
https://logstash.wikimedia.org/app/dashboards#/doc/logstash-*/logstash-default-1-7.0.0-1-2024.01.30?id=z6kxW40Bk70gu8Gmb2AK
https://logstash.wikimedia.org/app/dashboards#/view/AXDBY8Qhh3Uj6x1zCF56?_g=h@c45c1a7&_a=h@3910f78

This seems to correspond with this backport:
https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Popups/+/994028

Steps to replicate the issue:

  • Open a page on enwiki
  • Open browser console

What happens?:
"Uncaught DOMException: Element.closest: '' is not a valid selector" at /w/extensions/Popups/resources/dist/index.js:1:33508 (SourceMap is not working).

Example of stacktrace:

Uncaught DOMException: Element.closest: '' is not a valid selector
    Me https://en.wikipedia.org/w/extensions/Popups/src/preview/model.js:127
    EventListener.handleEvent* https://en.wikipedia.org/w/extensions/Popups/src/index.js:299
    <anonymous> https://en.wikipedia.org/w/extensions/Popups/src/index.js:178
    <anonymous> https://en.wikipedia.org/w/extensions/Popups/resources/dist/index.js?51e95:1
    <anonymous> https://en.wikipedia.org/w/extensions/Popups/resources/dist/index.js?51e95:1

What should have happened instead?:
No errors.

Event Timeline

I cannot replicate, either logged-in or logged-out. Does it happen with safemode on for you (i.e. on https://en.wikipedia.org/wiki/Main_Page?safemode=1)?

I think this should be filed under Navigation-Popups-Gadget - the errors occur for me when this gadget is enabled.

Does it happen with safemode on for you (i.e. on https://en.wikipedia.org/wiki/Main_Page?safemode=1)?

Yes. And I have page previews disabled.

Does it happen with safemode on for you (i.e. on https://en.wikipedia.org/wiki/Main_Page?safemode=1)?

Yes. And I have page previews disabled.

Interesting. If you use debug mode (https://en.wikipedia.org/wiki/Main_Page?safemode=1&debug=1) do you get a useful stack trace?

Uncaught DOMException: Element.closest: '' is not a valid selector
    Me https://en.wikipedia.org/w/extensions/Popups/src/preview/model.js:127
    EventListener.handleEvent* https://en.wikipedia.org/w/extensions/Popups/src/index.js:299
    <anonymous> https://en.wikipedia.org/w/extensions/Popups/src/index.js:178
    <anonymous> https://en.wikipedia.org/w/extensions/Popups/resources/dist/index.js?51e95:1
    <anonymous> https://en.wikipedia.org/w/extensions/Popups/resources/dist/index.js?51e95:1
Jdforrester-WMF renamed this task from "Uncaught DOMException: Element.closest: '' is not a valid selector" to "Uncaught DOMException: Element.closest: '' is not a valid selector" when Page Previews is disabled but Navigation Popups gadget is enabled.Jan 30 2024, 4:06 PM

Can reproduce by disabling Page Previews and enabling the Navigation Popups gadget.

This is particularly bizarre, as it appears(?) to be triggered by the preference to load the gadget itself rather than code from the gadget, as even in safemode when no gadget is loaded the error occurs?

Possibly the same as T356193 (but now at a considerably higher UBN rate)?

Jdlrobson triaged this task as Unbreak Now! priority.Jan 30 2024, 4:38 PM
Jdlrobson updated the task description. (Show Details)

The different error messages ("'' is not a valid selector" vs "The provided selector is empty") is probably a difference between browsers. These look like the same error.

Change 994198 had a related patch set uploaded (by Bartosz Dziewoński; author: Jdlrobson):

[mediawiki/extensions/Popups@master] Do not search for elements if no previews have been registered

https://gerrit.wikimedia.org/r/994198

Change 994198 merged by jenkins-bot:

[mediawiki/extensions/Popups@master] Do not search for elements if no previews have been registered

https://gerrit.wikimedia.org/r/994198

Change 994202 had a related patch set uploaded (by Jforrester; author: Jdlrobson):

[mediawiki/extensions/Popups@wmf/1.42.0-wmf.16] Do not search for elements if no previews have been registered

https://gerrit.wikimedia.org/r/994202

Change 994203 had a related patch set uploaded (by Jforrester; author: Jdlrobson):

[mediawiki/extensions/Popups@wmf/1.42.0-wmf.15] Do not search for elements if no previews have been registered

https://gerrit.wikimedia.org/r/994203

Change 994202 merged by jenkins-bot:

[mediawiki/extensions/Popups@wmf/1.42.0-wmf.16] Do not search for elements if no previews have been registered

https://gerrit.wikimedia.org/r/994202

Change 994203 merged by jenkins-bot:

[mediawiki/extensions/Popups@wmf/1.42.0-wmf.15] Do not search for elements if no previews have been registered

https://gerrit.wikimedia.org/r/994203

Mentioned in SAL (#wikimedia-operations) [2024-01-30T17:10:29Z] <jforrester@deploy2002> Started scap: Backport for [[gerrit:994202|Do not search for elements if no previews have been registered (T355933 T356186 T356193)]], [[gerrit:994203|Do not search for elements if no previews have been registered (T355933 T356186 T356193)]]

Mentioned in SAL (#wikimedia-operations) [2024-01-30T17:14:34Z] <jforrester@deploy2002> jforrester: Backport for [[gerrit:994202|Do not search for elements if no previews have been registered (T355933 T356186 T356193)]], [[gerrit:994203|Do not search for elements if no previews have been registered (T355933 T356186 T356193)]] synced to the testservers (https://wikitech.wikimedia.org/wiki/Mwdebug)

Mentioned in SAL (#wikimedia-operations) [2024-01-30T17:22:21Z] <jforrester@deploy2002> Finished scap: Backport for [[gerrit:994202|Do not search for elements if no previews have been registered (T355933 T356186 T356193)]], [[gerrit:994203|Do not search for elements if no previews have been registered (T355933 T356186 T356193)]] (duration: 11m 51s)

Jdlrobson lowered the priority of this task from Unbreak Now! to Medium.Jan 30 2024, 7:31 PM

Errors seem to be trailing off now: https://grafana.wikimedia.org/d/000000566/overview?orgId=1&tab=alert&viewPanel=16&from=now-30d&to=now
@Nardog can you confirm if this is also fixed for you?

(IANAnd but) It stopped for me around that time

I'm no longer getting the stream of errors I was earlier after enabling the Navigation Popups gadget, so it (crosses fingers) seems to be fixed for me :)

Nardog renamed this task from "Uncaught DOMException: Element.closest: '' is not a valid selector" when Page Previews is disabled but Navigation Popups gadget is enabled to "Uncaught DOMException: Element.closest: '' is not a valid selector".EditedJan 31 2024, 4:46 AM

I didn't have the Navigation Popups gadget enabled and I still got the error.

I didn't have the Navigation Popups gadget enabled and I still got the error.

Fixed for me by the backport.

It was any gadget that used the pop up extension. The biggest culprit was probably the Reference Previews Gadget because a) it's enabled on registered accounts by default and b) there are lots of references on any given page. It was giving me maybe ~100 errors per minute per page? Navigation Popups also threw a lot too but isn't enabled by default so probably fewer people have it enabled (I'd guess). I also had a few user scripts that triggered it a few times as well.