+1
Fixed

Errors in background embed graphs

alex oatridge 3 years ago updated by Lazlo Bonin (Lead Developer) 2 years ago 14 1 duplicate

During testing, I saw tons of errors in my Xcode logs. Reading other bug posts on the subject the fix was either to go to each Bolt Flow/State and save or just ignore them. Since ignoring them is not my style and saving had no effect I set out to find where the errors where being triggered. After many hours of saving, disabling, deleting and testing I think I found the root of my issue.

I have a prefab game controller with a state macro. I noticed that if I deleted ALL of the Flow States inside of this controller, I would keep getting the same errors. It's not till after I deleted the actual prefab instance from the scene that the errors stopped.

I reset my project and this I broke the prefab and converted from a macro to an embed state and once again the errors stopped

I have clicked the apply button many times and also dragged a new instance of the prefab into the scene with no change of results. I also ran the AOT pre-build and cleaned my Xcode project on each test.

Only breaking the prefab state does not affect the error logs you must also convert to embed graph to fix it.

Errors version with prefab


No errors and broken prefab



Types of errors I am seeing in Xcode logs


Ignoring value connection with missing dependencies in flow graph.
This may happen when the codebase or a macro is changed in between serialization operations.
Ludiq.Graph:OnAfterDependenciesDeserialized()
Ludiq.FullSerializer.fsSerializationCallbackReceiverProcessor:OnAfterDeserialize(Type, Object)
Ludiq.FullSerializer.fsSerializer:Invoke_OnAfterDeserialize(List`1, Type, Object)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsIEnumerableConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.Serialization:DeserializeJson(fsSerializer, String, Object&, Boolean)
Ludiq.Serialization:DeserializeInto(SerializationData, Object&, Boolean)
Ludiq.LudiqBehaviour:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()
 
(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51) Failed to reflect member unit 'Component.Instantiate'.
Has your codebase changed? System.MissingMemberException: No matching method found: 'Component.Instantiate (Object, Vector3, Quaternion, Transform)'
  at Ludiq.Member.ReflectConstructor () [0x00000] in <filename unknown>:0
  at Ludiq.Member.Reflect () [0x00000] in <filename unknown>:0
  at Bolt.MemberUnit.ReflectMember () [0x00000] in <filename unknown>:0
  at Bolt.MemberUnit.OnAfterDeserialize () [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializationCallbackReceiverProcessor.OnAfterDeserialize (System.Type storageType, System.Object instance) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.Invoke_OnAfterDeserialize (System.Collections.Generic.List`1 processors, System.Type storageType, System.Object instance) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsIEnumerableConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance_, System.Type storageType) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsIEnumerableConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance_, System.Type storageType) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_3_Inheritance (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_2_Version (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_1_CycleReference (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result, System.Collections.Generic.List`1& processors) [0x00000] in <filename unknown>:0
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x00000] in <filename unknown>:0
  at Ludiq.Serialization.DeserializeJson (Ludiq.FullSerializer.fsSerializer serializer, System.String json, System.Object& instance, Boolean forceReflected) [0x00000] in <filename unknown>:0
  at Ludiq.Serialization.DeserializeInto (SerializationData data, System.Object& instance, Boolean forceReflected) [0x00000] in <filename unknown>:0
  at Ludiq.LudiqBehaviour.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize () [0x00000] in <filename unknown>:0
Bolt.MemberUnit:OnAfterDeserialize()
Ludiq.FullSerializer.fsSerializationCallbackReceiverProcessor:OnAfterDeserialize(Type, Object)
Ludiq.FullSerializer.fsSerializer:Invoke_OnAfterDeserialize(List`1, Type, Object)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsIEnumerableConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsIEnumerableConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.FullSerializer.fsReflectedConverter:TryDeserialize(fsData, Object&, Type)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_3_Inheritance(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_2_Version(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:InternalDeserialize_1_CycleReference(Type, fsData, Type, Object&, List`1&)
Ludiq.FullSerializer.fsSerializer:TryDeserialize(fsData, Type, Type, Object&)
Ludiq.Serialization:DeserializeJson(fsSerializer, String, Object&, Boolean)
Ludiq.Serialization:DeserializeInto(SerializationData, Object&, Boolean)
Ludiq.LudiqBehaviour:UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize()
 
(Filename: /Users/builduser/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51)
Bolt Version:
Unity Version:
Platform(s):
Scripting Backend:
.NET Version (API Compatibility Level):

Duplicates 1

Pending Review

Hi Cosmonaut,

This might be because the missing reference is still in the serialized data, but gets skipped as it fails loading.

Even if you look through your graphs, you'd need to "save" the graph without the missing reference for the warning to disappear. However, graphs won't be marked for saving unless they're changed somehow (e.g. just moving any node, then pressing Ctrl+S).

For now, if you don't have any error preventing a graph to load or your gameplay to run, you should be able to safely ignore the warning. 

we are still getting this error, I think it might be slowing down performance in the editor immensely, my editor slows to a hault (10fps) and memory usage of Unity goes up massively after I get this warning on startup

Failed to reflect member unit 'PetBrain.TuckIn'.
Has your codebase changed?

System.MissingMemberException: No matching field, property, method or constructor found: 'PetBrain.TuckIn'
  at Ludiq.Member.Reflect () [0x00093] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Reflection\Member.cs:575 


Hi Ed,

Are you getting this warning repeatedly in the editor, or only on startup? If you only get it on startup, it shouldn't affect the performance. Did you profile the editor from the Profiler window?

yes it's only on startup, but it has been persisting for some time (as in the warnings happen every single time we open the unity project, despite trying to save each state machine / flow graph) our editor slow downs only began after installing Bolt, but I can't see it in the editor profiler so I can't say for sure if it's Bolt, I just know the editor slow downs started only after installing Bolt and changing an enum name Bolt was serializing, will update you if I can find the root cause of the slow down

I've been also having lingering warnings for some time. When I removed some functions from a script. Before removing the functions I had already deleted any units in my graphs, I have tried saving, updating units options and the warnings are still there. they pop up each time I hit play and get 6 repetitions of each error per function deleted per play session. I have not noticed any slowdowns on my editor. I considered warnings minor and hadn't brought it up till I saw this thread.



+1

yeah, we are getting hundreds of these warnings now, it's pretty intense, would be great to not have these warnings mucking up the log

Pending Review

Thanks for the in-depth report and for investigating the potential cause, it really helps!

I think you might have found an interesting issue with the embed / macro source choice. Basically, Bolt keeps embed graphs in place even if your current source is set to macro, just in case you changed your mind and wanted to go back to the embed graph. But that means that if there are errors in that "background" embed graphs, they'll still pop even when your source is set to macro.

Another problem with that system is that having "background" embed graphs forces Bolt to deserialize them, even if they're not being used. This slows down initialization time (e.g. when entering play mode), often not significantly, but it depends on the complexity of the background embed.

This will change in v.1.3 (the item marked "begin soft obsolescence of embed graphs" on the roadmap, which I think I'll rename). Basically, Bolt will no longer keep embed graphs when you switch to a macro source, it will just delete them. There will be a warning dialog to make sure this doesn't happen by mistake.

Pending Review

Since these warnings are often harmless, should I disable them?

If you get an error on runtime, Bolt will tell you on which object and node any way, so you can fix the errors "as they happen". As it stands right now, these warnings don't really tell you exactly where something went wrong, so they're not really helpful.

yeah, either add more detail to the warning, fix the source of the warning (i.e. have the plugin automatically delete old things that are trying to be serialized), or just disable the warning, as long as you are %100 confident that junk isn't sitting in there and causing slow downs

Small update!

After the explanation of how the system works I tried a simple test.

  1. I reset my project back to the error state.
  2. I clicked the convert button for the State machine on the prefab changing it to an embed.
  3. I converted it back to a macro with the drop down. It found the old macro relation automatically.
  4. Clicked the prefab apply button just in case.
  5. Saves and performed the AOT Pre-build
  6. Build and run in Xcode

BOOM no more errors! Hope this helps others till the final fix comes out.

Actually, I'm now getting this error when opening up the project for the first time on a new computer:

"GetBool is not allowed to be called during serialization, call it from OnEnable instead. Called from ScriptableObject 'StateMacro'.

See "Script Serialization" page in the Unity Manual for further details."

So yeah, I wonder if this is related to the warnings.