What appears to have happened here is that a JSON file somehow got overwritten with a corrupted older version of a completely different JSON file. This caused a conflict when loading the persistent nodes, because each node is supposed to have a unique ID. I've modified the code to avoid crashing in this scenario, and the corrupted file will be skipped at load time.
Normally this wouldn't have been a problem, because corrupted Store files are detected at load time and cleaned up automatically. But it seems that when this file got corrupted it managed to still maintain a correct JSON structure, and so the Scanner attempted to add it to the Store, and that's what caused the crash.
As far as the corruption, my guess is that it's filesystem level corruption.