Failed to save game: Object reference not set to an instance of an object.

Saves & Loading
Captain Zuff Captain Zuff · 3 years ago

Original post from Steam:

My usual routine is to save manually just once after the whole game session to a new save file. When I tried to manually save yesterday on "v0.5.2a" I got "Failed to save game: Object reference not set to an instance of an object.". Sadly, I had to just exit and lost progress.

I also noticed that autosaves were not happening at all (presumably failing with the same error), so my guess would be that the saves were not possible since the very moment I loaded the game.

It would be nice if an error popup was jumping early on for autosaves instead of silently failing in the background.

Attached logs and save from email:
Player.log, Player-prev.log
23-06-15_14-55-15_5838.log, 23-06-15_17-42-22_3311.log, 23-06-16_22-18-01_7163.log, 23-06-17_22-03-26_1616.log, 23-06-17_23-49-04_1269.log, 23-06-19_19-42-23_1383.log, 23-06-19_21-46-52_3474.log
02-006.save, 02-007.save, 02-008.save

12 attachments only for registered users
Captain Zuff Captain Zuff · 3 years ago

Another user sent me their log files:
"I just tried to save my game, but I got an error message that this is not possible. My progress was lost. When I restarted the game I found that I can not load the safegame files, because the game then crashes."
23-06-19_12-30-27_5431.log, 23-06-20_14-57-28_1739.log, 23-06-20_16-20-54_1065.log, 23-06-20_16-24-51_8858.log, 23-06-20_17-12-19_2373.log, 23-06-20_17-28-17_2319.log

6 attachments only for registered users
Captain Filip Captain Filip · 3 years ago

Seeing the following issue:

 ---> NullReferenceException: Object reference not set to an instance of an object
  at Mafi.Serialization.DynamicDispatchClassSerializer`1[T].<.ctor>b__11_0 (T value, Mafi.Serialization.BlobWriter writer) [0x00034]  
  at Mafi.Serialization.BlobWriter.WriteGeneric[T] (T obj) [0x0002f]  
  at Mafi.Option`1[T].Serialize (Mafi.Option`1[T] value, Mafi.Serialization.BlobWriter writer) [0x0001e]  
  at Mafi.Core.Maintenance.EntityMaintenanceProvider.SerializeData (Mafi.Serialization.BlobWriter writer) [0x00018]  
  at Mafi.Core.Maintenance.EntityMaintenanceProvider+<>c.<.cctor>b__43_0 (System.Object obj, Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Serialization.BlobWriter.FinalizeSerialization () [0x0001c]  
  at Mafi.Core.SaveGame.GameSaver.StartSave (Mafi.DependencyResolver resolver, Mafi.Core.SaveGame.SaveCompressionType saveCompressionType) [0x00097]  
  at Mafi.Core.SaveGame.SaveManager.startGameSave () [0x0002c]  
W 12:28:41,959 S1263590 ~Mai: Failed to raycast terrain.
  at Mafi.Unity.Terrain.TerrainRenderer.Raycast (UnityEngine.Ray ray) [0x00000]  
  at Mafi.Unity.InputControl.TerrainCursor.TryComputeTerrainPosition (UnityEngine.Vector3 mousePosition, Mafi.Tile3f& position) [0x00000]  
  at Mafi.Unity.InputControl.TerrainCursor.recompute () [0x00000]  
  at Mafi.Unity.InputControl.TerrainCursor.ensureValid () [0x00000]  
  at Mafi.Unity.InputControl.TerrainCursor.get_Tile3f () [0x00000]  
  at Mafi.Unity.InputControl.TerrainCursor.get_Tile2i () [0x00000]  
  at Mafi.Unity.InputControl.TerrainCursor.get_Tile2iClampedToLimits () [0x00000]  
  at Mafi.Unity.Mine.TerrainDesignationController.sync (Mafi.Core.GameTime time) [0x00000]  
  at Mafi.EventNonSaveable`1[T].Invoke (T arg) [0x00000]  
  at Mafi.EventNonSaveable`1[T].InvokeTraced (T arg, System.String traceCategory) [0x00000]
  
  X 12:34:27,852 S1267045 ~Mai: Failed to save game.
 ---> NullReferenceException: Object reference not set to an instance of an object
  at Mafi.Serialization.DynamicDispatchClassSerializer`1[T].<.ctor>b__11_0 (T value, Mafi.Serialization.BlobWriter writer) [0x00034]  
  at Mafi.Serialization.BlobWriter.WriteGeneric[T] (T obj) [0x0002f]  
  at Mafi.Option`1[T].Serialize (Mafi.Option`1[T] value, Mafi.Serialization.BlobWriter writer) [0x0001e]  
  at Mafi.Core.Maintenance.EntityMaintenanceProvider.SerializeData (Mafi.Serialization.BlobWriter writer) [0x00018]  
  at Mafi.Core.Maintenance.EntityMaintenanceProvider+<>c.<.cctor>b__43_0 (System.Object obj, Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Serialization.BlobWriter.FinalizeSerialization () [0x0001c]  
  at Mafi.Core.SaveGame.GameSaver.StartSave (Mafi.DependencyResolver resolver, Mafi.Core.SaveGame.SaveCompressionType saveCompressionType) [0x00097]  
  at Mafi.Core.SaveGame.SaveManager.startGameSave () [0x0002c]  ```
Allirium [github] · 8 months ago

I have pretty similar issue with 0.7.9a version:

I 11:49:25,765 S12179611 ~Thr: GameSaver: Save finalize took 1580 ms
I 11:49:25,998 S12179611 ~Mai: Game saved to 'C:\Users\Allirium\AppData\Roaming\Captain of Industry\Saves\Flourishing Shelter\26-02-08_11-49-autosave-paused.save' (size: 14 MB).
X 15:49:51,137 S12179617 ~Mai: Failed to save game.
 ---> NullReferenceException: Object reference not set to an instance of an object
  at Mafi.Serialization.BlobWriter.TryStartArraySerialization[T] (T[] arr) [0x00068]  
  at Mafi.Serialization.BlobWriter.WriteArray[T] (T[] arr) [0x00000]  
  at Mafi.Collections.ImmutableCollections.ImmutableArray`1[T].Serialize (Mafi.Collections.ImmutableCollections.ImmutableArray`1[T] value, Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Core.Entities.Static.Layout.LayoutEntity.SerializeData (Mafi.Serialization.BlobWriter writer) [0x00025]  
  at Mafi.Core.Factory.Lifts.Lift.SerializeData (Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Core.Factory.Lifts.Lift+<>c.<.cctor>b__67_0 (System.Object obj, Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Serialization.BlobWriter.FinalizeSerialization () [0x0001c]  
  at Mafi.Core.SaveGame.GameSaver.StartSave (Mafi.DependencyResolver resolver, Mafi.Core.SaveGame.SaveCompressionType saveCompressionType) [0x000b8]  
  at Mafi.Core.SaveGame.SaveManager.startGameSave () [0x00030]  
E 16:04:51,315 S12206593 ~Mai: Child is already attached to this parent.
  at Mafi.Unity.UiToolkit.Component.UiComponent.InsertAt (System.Int32 index, Mafi.Unity.UiToolkit.Component.UiComponent child, System.Boolean alreadyInHierarchy) [0x00000]  
  at Mafi.Unity.UiToolkit.Component.UiComponent.Add (Mafi.Unity.UiToolkit.Component.UiComponent child) [0x00000]  
  at Mafi.Unity.UiToolkit.UiRoot.AddComponent (Mafi.Unity.UiToolkit.Component.UiComponent component, Mafi.Unity.UiToolkit.UiLayer layer) [0x00000]  
  at Mafi.Unity.UiToolkit.UiRoot.AddComponent (Mafi.Unity.UiToolkit.Component.UiComponent component) [0x00000]  
  at Mafi.Unity.Ui.Hud.Save.AutosaveToast.onSaveStart () [0x00000]  
  at Mafi.Core.SaveGame.SaveManager.sync () [0x00000]  
  at Mafi.EventNonSaveable.Invoke () [0x00000]  
  at Mafi.EventNonSaveable.InvokeTraced (System.String traceCategory) [0x00000]  
  at Mafi.Event.InvokeTraced (System.String traceCategory) [0x00000]  
  at Mafi.Core.Simulation.SimLoopEvents.InvokeSync () [0x00000]  
X 16:04:51,836 S12206596 ~Mai: Failed to save game.
 ---> NullReferenceException: Object reference not set to an instance of an object
  at Mafi.Serialization.BlobWriter.TryStartArraySerialization[T] (T[] arr) [0x00068]  
  at Mafi.Serialization.BlobWriter.WriteArray[T] (T[] arr) [0x00000]  
  at Mafi.Collections.ImmutableCollections.ImmutableArray`1[T].Serialize (Mafi.Collections.ImmutableCollections.ImmutableArray`1[T] value, Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Core.Entities.Static.Layout.LayoutEntity.SerializeData (Mafi.Serialization.BlobWriter writer) [0x00025]  
  at Mafi.Core.Factory.Lifts.Lift.SerializeData (Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Core.Factory.Lifts.Lift+<>c.<.cctor>b__67_0 (System.Object obj, Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Serialization.BlobWriter.FinalizeSerialization () [0x0001c]  
  at Mafi.Core.SaveGame.GameSaver.StartSave (Mafi.DependencyResolver resolver, Mafi.Core.SaveGame.SaveCompressionType saveCompressionType) [0x000b8]  
  at Mafi.Core.SaveGame.SaveManager.startGameSave () [0x00030]  
E 16:19:52,358 S12233593 ~Mai: Child is already attached to this parent.
  at Mafi.Unity.UiToolkit.Component.UiComponent.InsertAt (System.Int32 index, Mafi.Unity.UiToolkit.Component.UiComponent child, System.Boolean alreadyInHierarchy) [0x00000]  
  at Mafi.Unity.UiToolkit.Component.UiComponent.Add (Mafi.Unity.UiToolkit.Component.UiComponent child) [0x00000]  
  at Mafi.Unity.UiToolkit.UiRoot.AddComponent (Mafi.Unity.UiToolkit.Component.UiComponent component, Mafi.Unity.UiToolkit.UiLayer layer) [0x00000]  
  at Mafi.Unity.UiToolkit.UiRoot.AddComponent (Mafi.Unity.UiToolkit.Component.UiComponent component) [0x00000]  
  at Mafi.Unity.Ui.Hud.Save.AutosaveToast.onSaveStart () [0x00000]  
  at Mafi.Core.SaveGame.SaveManager.sync () [0x00000]  
  at Mafi.EventNonSaveable.Invoke () [0x00000]  
  at Mafi.EventNonSaveable.InvokeTraced (System.String traceCategory) [0x00000]  
  at Mafi.Event.InvokeTraced (System.String traceCategory) [0x00000]  
  at Mafi.Core.Simulation.SimLoopEvents.InvokeSync () [0x00000]  
X 16:19:52,859 S12233596 ~Mai: Failed to save game.
 ---> NullReferenceException: Object reference not set to an instance of an object
  at Mafi.Serialization.BlobWriter.TryStartArraySerialization[T] (T[] arr) [0x00068]  
  at Mafi.Serialization.BlobWriter.WriteArray[T] (T[] arr) [0x00000]  
  at Mafi.Collections.ImmutableCollections.ImmutableArray`1[T].Serialize (Mafi.Collections.ImmutableCollections.ImmutableArray`1[T] value, Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Core.Entities.Static.Layout.LayoutEntity.SerializeData (Mafi.Serialization.BlobWriter writer) [0x00025]  
  at Mafi.Core.Factory.Lifts.Lift.SerializeData (Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Core.Factory.Lifts.Lift+<>c.<.cctor>b__67_0 (System.Object obj, Mafi.Serialization.BlobWriter writer) [0x00000]  
  at Mafi.Serialization.BlobWriter.FinalizeSerialization () [0x0001c]  
  at Mafi.Core.SaveGame.GameSaver.StartSave (Mafi.DependencyResolver resolver, Mafi.Core.SaveGame.SaveCompressionType saveCompressionType) [0x000b8]  
  at Mafi.Core.SaveGame.SaveManager.startGameSave () [0x00030]  
E 16:34:53,415 S12260545 ~Mai: Child is already attached to this parent.
  at Mafi.Unity.UiToolkit.Component.UiComponent.InsertAt (System.Int32 index, Mafi.Unity.UiToolkit.Component.UiComponent child, System.Boolean alreadyInHierarchy) [0x00000]  
  at Mafi.Unity.UiToolkit.Component.UiComponent.Add (Mafi.Unity.UiToolkit.Component.UiComponent child) [0x00000]  
  at Mafi.Unity.UiToolkit.UiRoot.AddComponent (Mafi.Unity.UiToolkit.Component.UiComponent component, Mafi.Unity.UiToolkit.UiLayer layer) [0x00000]  
  at Mafi.Unity.UiToolkit.UiRoot.AddComponent (Mafi.Unity.UiToolkit.Component.UiComponent component) [0x00000]  
  at Mafi.Unity.Ui.Hud.Save.AutosaveToast.onSaveStart () [0x00000]  
  at Mafi.Core.SaveGame.SaveManager.sync () [0x00000]  
  at Mafi.EventNonSaveable.Invoke () [0x00000]  
  at Mafi.EventNonSaveable.InvokeTraced (System.String traceCategory) [0x00000]  
  at Mafi.Event.InvokeTraced (System.String traceCategory) [0x00000]  
  at Mafi.Core.Simulation.SimLoopEvents.InvokeSync () [0x00000]  

and game still do it silently. what caused for me 3 days of progress.
26-01-30_00-08-40_1328.log

1 attachment only for registered users
18 Showing 1–4 of 4