I'm getting this too. The only work around I have is it autosave, unlimited number of saves, set to 1 minute so that when it occurs I'll only lose the last minute of the save. In the last 1 hour of play, it's happened four times.
Eternal saving, not ability to exit:
19-13-02.cok is the last good save at 55Mb, thereafter the go to 1Mb with the game continuing to try to auto save each minute (hence the banked up saves in the screenshot above).
FIRST ERROR WINDOW:
[CRITICAL] System update error during Serialize->SerializerSystem:
NullReferenceException: Object reference not set to an instance of an object
at Unity.Entities.EntityManager.HighestEntityIndex () [0x00053] in <e125b05a4c73402481185d1a135059f5>:0
at Colossal.Serialization.Entities.EntitySerializer`1[TWriteBuffer].CreateEntityTable (Colossal.Serialization.Entities.Context context, Unity.Collections.Allocator allocator) [0x0017c] in <f539b356a552460880371c76b71887be>:0
at Colossal.Serialization.Entities.EntitySerializer`1[TWriteBuffer].Serialize[TWriter,TFormatTags] (Colossal.Serialization.Entities.Context context, Unity.Entities.EntityQuery query, Colossal.Serialization.Entities.BufferFormat bufferFormat, Unity.Entities.ComponentType[] requireEnabled) [0x0004d] in <f539b356a552460880371c76b71887be>:0
at Game.Serialization.SerializerSystem.OnUpdate () [0x000c4] in <cc2da3314a404c70a203f382286b5d52>:0
at Unity.Entities.SystemBase.Update () [0x0004e] in <e125b05a4c73402481185d1a135059f5>:0
at Game.UpdateSystem.Update (Game.SystemUpdatePhase phase) [0x0004e] in <cc2da3314a404c70a203f382286b5d52>:0
Colossal.Logging.CustomLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:LogFormat(LogType, String, Object[])
Colossal.Logging.UnityLogger:Log(Level, String, Exception)
Colossal.Logging.UnityLogger:CriticalFormat(Exception, String, Object, Object)
Game.UpdateSystem:Update(SystemUpdatePhase)
Game.Serialization.SaveGameSystem:OnUpdate()
Unity.Entities.SystemBase:Update()
Game.UpdateSystem:Update(SystemUpdatePhase)
Game.SceneFlow.GameManager:UpdateWorld()
Game.SceneFlow.GameManager:Update()
SECOND ERROR WINDOW:
[ERROR] \\\\?\\C:\\Users\\(user)\\AppData\\Local\\Temp\\Colossal Order\\Cities Skylines II\\0e499ad5c6de4294b77cdb6e2ac5094a\\19-June-19-14-02.SaveGameData: The process cannot access the file because it is being used by another process.
IOException: \\?\C:\Users\(user)\AppData\Local\Temp\Colossal Order\Cities Skylines II\0e499ad5c6de4294b77cdb6e2ac5094a\19-June-19-14-02.SaveGameData: The process cannot access the file because it is being used by another process.
at System.IO.LongFile.GetFileHandle (System.String normalizedPath, System.Guid guid, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.IO.FileOptions options) [0x00036] in <71817e4332374ad89af93b8ea283134f>:0
at System.IO.LongFile.Open (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options, System.Action disposeCallback) [0x00017] in <71817e4332374ad89af93b8ea283134f>:0
at System.IO.LongFile.Open (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Action disposeCallback) [0x00000] in <71817e4332374ad89af93b8ea283134f>:0
at System.IO.LongFile.OpenRead (System.String path) [0x00000] in <71817e4332374ad89af93b8ea283134f>:0
at Colossal.IO.AssetDatabase.FileSystemDataSource.GetReadStream (Colossal.IO.AssetDatabase.FileSystemDataSource+EntryInfo fi) [0x00016] in <e204981baa3d4b1ca12fa335a13465cc>:0
at Colossal.IO.AssetDatabase.FileSystemDataSource.GetReadStream (Colossal.Hash128 guid) [0x00031] in <e204981baa3d4b1ca12fa335a13465cc>:0
at Colossal.IO.AssetDatabase.AssetDatabase`1[T].GetReadStream (Colossal.Hash128 guid) [0x00000] in <e204981baa3d4b1ca12fa335a13465cc>:0
at Colossal.IO.AssetDatabase.ZipPackageWriter+FileDataSource..ctor (Colossal.IO.AssetDatabase.IAssetData asset) [0x00018] in <e204981baa3d4b1ca12fa335a13465cc>:0
at Colossal.IO.AssetDatabase.ZipPackageWriter.Add (Colossal.IO.AssetDatabase.IAssetData asset, System.Boolean preserveTimestamp) [0x00083] in <e204981baa3d4b1ca12fa335a13465cc>:0
at Colossal.IO.AssetDatabase.PackageAsset.Save (System.Boolean force, System.Boolean preserveTimestamp) [0x00036] in <e204981baa3d4b1ca12fa335a13465cc>:0
at Colossal.IO.AssetDatabase.PackageAsset.Save (System.Boolean force) [0x00000] in <e204981baa3d4b1ca12fa335a13465cc>:0
at Game.SceneFlow.GameManager+<>c__DisplayClass91_0.<Save>b__0 () [0x0007a] in <cc2da3314a404c70a203f382286b5d52>:0
at System.Threading.Tasks.Task`1[TResult].InnerInvoke () [0x0000f] in <356d430fdcb04bbf8dc54776e1d3627f>:0
at System.Threading.Tasks.Task.Execute () [0x00000] in <356d430fdcb04bbf8dc54776e1d3627f>:0
--- End of stack trace from previous location where exception was thrown ---
at Game.SceneFlow.GameManager.Save (System.String saveName, Game.Assets.SaveInfo meta, Colossal.IO.AssetDatabase.ILocalAssetDatabase database, Game.UI.ScreenCaptureHelper+AsyncRequest previewRequest) [0x00371] in <cc2da3314a404c70a203f382286b5d52>:0
at Game.AutoSaveSystem.AutoSave () [0x000f7] in <cc2da3314a404c70a203f382286b5d52>:0
Colossal.Logging.CustomLogHandler:LogFormat(LogType, Object, String, Object[])
UnityEngine.Logger:LogFormat(LogType, String, Object[])
Colossal.Logging.UnityLogger:Log(Level, String, Exception)
Colossal.Logging.UnityLogger:Error(Exception)
Game.<AutoSave>d__13:MoveNext()
System.Runtime.CompilerServices.MoveNextRunner:InvokeMoveNext(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Runtime.CompilerServices.MoveNextRunner:Run()
System.Threading.Tasks.AwaitTaskContinuation:InvokeAction(Object)
System.Threading.Tasks.AwaitTaskContinuation:RunCallback(ContextCallback, Object, Task&)
System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation:Run(Task, Boolean)
System.Threading.Tasks.Task:FinishContinuations()
System.Threading.Tasks.Task:FinishStageThree()
System.Threading.Tasks.Task:FinishStageTwo()
System.Threading.Tasks.Task:Finish(Boolean)
System.Threading.Tasks.Task:TrySetException(Object)
System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:SetException(Exception)
Game.SceneFlow.<Save>d__91:MoveNext()
System.Runtime.CompilerServices.MoveNextRunner:InvokeMoveNext(Object)
System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
System.Runtime.CompilerServices.MoveNextRunner:Run()
System.Threading.Tasks.<>c:<.cctor>b__7_0(Object)
UnityEngine.WorkRequest:Invoke()
UnityEngine.UnitySynchronizationContext:Exec()
UnityEngine.UnitySynchronizationContext:ExecuteTasks()