During world or player setup, some villages can be added to the world, that are not added to id1's city[] array.
Possibly this happens when padding out villages during player setup, that id1 is not saved?
village-check.c script written to check for this situation.
script to check for this problem