Sometimes the game tries to save weird data like infinite numbers, not-a-number numbers, etc. Because the game doesn't know how to read such data from the save file's string, the world will be considered corrupted.
Here's an example:
[00:00:08]: [string "scripts/shardindex.lua"]:195: Corrupt Save file [session/4ED11F7829D3FB93/0000002167]
LUA ERROR stack traceback:
=[C]:-1 in (global) assert (C) <-1--1>
scripts/shardindex.lua:195 in (upvalue) OnLoadSaveDataFile (Lua) <181-200>
savedata = [string "return {world_network={persistdata={worldtemperature={seasontem..."]:1: '}' expected near '#'
A snippet from that broken save's string that prevents it from loading:
workable={maxwork=-1,workleft=1.#QNAN}}