Nodes are sorted based on the selection. In some cases (even depending on processor speed, nodes can be selected and reordered, and another operation can run before the next redraw). That gives a window where operators mapped to the same input as selection can run with invalid socket locations (which aren't updated after the nodes are reordered, since they are stored in a separate array). To fix this, move the socket locations from the node editor runtime data to the node tree, tag them as invalid when the nodes are reordered, and check for that status in a few more places. A better longer term solution is not reordering nodes based on UI status and instead storing the UI drawing order separately. Pull Request #104420