Changes that merely change the order of sitelinks (and maybe others) lead to the dispatcher choking and not moving forward. Here's the analysis by Katie:
After investigating on toollabs with the copy of the wikidata database there, it looks like change id 55754448 is the odd one:
For that change, DiffChange->getDiff() (and getSiteLinkDiff) are returning a DiffOpChange object. For all other changes, it is an ItemDiff object.
The site link diff involves changing the order of the site links in the array, but otherwise a null change for site links:
'newValue' => array ( 'svwiki' => 'Projekt 661 Antjar', 'dewiki' => 'Papa-Klasse', 'frwiki' => 'Classe Papa', 'cswiki' => 'Projekt 661', ), 'oldValue' => array ( 'cswiki' => 'Projekt 661', 'dewiki' => 'Papa-Klasse', 'frwiki' => 'Classe Papa', 'svwiki' => 'Projekt 661 Antjar', ),