I can not reproduce this and I don't see any way I could be causing this. init_mining just iterates over the game's surfaces, calls check_surface with the names given by the API, then calls SEs remote interface to check the type of that surface using the index number of the surface.
The name can't be invalid and the surface has to exist or else it'd error when I attempt to find the index, which it does right before the call to SE's remote interface. No changes between 0.5 and 0.6 for the interface. Looking at the SE code, it's validating the surface before it does anything, which removes the last possible way I could think that my code was causing this.
It looks like one of their global values hasn't been initialized yet so it's nil, which the code tries to iterate over using pairs, causing the error. It's possible the dev didn't account for someone using that interface during on_init when the game is first created.
Really makes no sense that SP/hosted MP would be fine and starting a server wouldn't, but ultimately it's something in the SE code that is failing.