Ich glaube, ich kann das Problem jetzt erklären. Die nodes.json Datei wird auf dem Server direkt in-place überschrieben, und scheinbar immer zur vollen Minute. Da ich die Datei per cronjob alle 10 Minuten zur vollen Minute abhole, schaffe ich es sehr regelmäßig, korrupte Daten abzuholen. Ich werde jetzt einfach 10 Sekunden warten im cronjob, und schauen, ob die Daten dann (meistens) konsistent sind.
Besser wäre es jedenfalls, im Skript auf dem Server die nodes.json nicht in-place zu überschreiben sondern in ein temp-file zu schreiben und dass dann zu verschieben.
Da der Fehler aber auch die Karte auf der Webseite betrifft, wäre eine richtige Änderung besser als ein Workaround in meinem Skript. Habe mal einen Pull-Request gemacht.