Trying to view this visual diff: https://en.wikipedia.org/w/index.php?title=Wikipedia:Village_pump_(proposals)&oldid=1109118785&diff=1109271141&visualdiff&diffmode=visual
Causes an exception:
jQuery.Deferred exception: Cannot read properties of undefined (reading 'from')
TypeError: Cannot read properties of undefined (reading 'from')
at ve.dm.MWTransclusionNode.static.describeChanges (...:1434:793)
at ve.ui.DiffElement.compareNodeAttributes (...:989:799)
at ve.ui.DiffElement.getChangedLeafNodeData (...:977:629)
at ve.ui.DiffElement.getChangedNodeData (...:976:828)
at ...:982:514
at Array.forEach (<anonymous>)
at ve.ui.DiffElement.getChangedListNodeData (...:982:355)
at ve.ui.DiffElement.getChangedNodeData (...:976:919)
at ve.ui.DiffElement.getChangedNodeElements (...:976:574)
at ...:971:793Alternative exception message on other browsers:
jQuery.Deferred exception: can't access property "from", attributeChanges.mw is undefined ve.dm.MWTransclusionNode.static.describeChanges@...:1688:589 ve.ui.DiffElement.prototype.compareNodeAttributes@...:1201:824 ve.ui.DiffElement.prototype.getChangedLeafNodeData@...:1188:285 ve.ui.DiffElement.prototype.getChangedNodeData@...:1187:488 ve.ui.DiffElement.prototype.getChangedListNodeData/<@...:1193:804 ve.ui.DiffElement.prototype.getChangedListNodeData@...:1193:522 ve.ui.DiffElement.prototype.getChangedNodeData@...:1187:579 ve.ui.DiffElement.prototype.getChangedNodeElements@...:1187:223 ve.ui.DiffElement.prototype.renderQueue/<@...:1181:891 ve.ui.DiffElement.prototype.renderQueue@...:1181:836 ve.ui.DiffElement.prototype.renderDiff@...:1185:10 VeUiDiffElement@...:1177:708 onReviewModeButtonSelectSelect/<@...:72:19 mightThrow@...:641:983 Deferred/then/resolve/</process<@...:642:643
I originally ran into this when trying to view a day's worth of comments from my watchlist, and I reduced it to the (still large) diff linked above. The issue seems to be related to the use of {{pb}} template in the list items representing comments – in the wikitext diff, there is one comment with this template removed on the left side, and another added on the right. I couldn't find a more minimal test case though.