He's probably having issues with async gubbins. Some sort of 'rewind time' in the debugger so you could determine what happened when to get to this state of error.
Of course, I want to run my server in the same way.
So perhaps this is better done inside some "deterministic virtual machine", where the browser and server are run deterministically hand-in-hand.
Second, you can actually execute browser and node code deterministically if you like, by providing alternative implementations of setTimeout, setInterval, setImmediate, etc. that serialize execution of the callbacks in the order of your choice.