+10
Fixed

Graphs getting deleted/corrupted

Phill Page 3 years ago updated by Noble Valerian 2 years ago 45 2 duplicates

Hi, first off thanks for making Bolt. I've been really enjoying using it for the most part and I'm looking forward to learning it more but I seem to have run into a few issues.

I've been going through the Bolt platforming tutorial and whilst going through the enemy section my project seems to have corrupted as a lot of my graphs have been deleted. Not the graphs themselves but everything in them. The Key, Door, Enemy, EnemyRachEdge, EnemyChangeMind & EnemyWalk have all corrupted and won't allow me to modify them without loosing everything I've done each time I close Unity. The same happens with any new graphs/macros I create.

I'm also getting a timeout error which isn't allowing me to add any new machines to any flow graphs, the fuzzy finder just spins the loading icon indefinitely. I've added the error I get to the bottom of this post

I'm sot sure if this is related but my prefabs aren't being populated with the bolt macro component. In the hierarchy it has the component but it's defaulting to embedded even though it shows to have a macro on it in the project view.

I hope you can help as I really want to finish the tutorial :) Thanks

I'm getting these error when I load up the project;

Error loading launcher://unity/C:/Users/Phill/AppData/Roaming/Unity/Packages/node_modules/unity-editor-home/dist/index.html?code=G0W1xOawq_KXUmoqWj7RyA008f&locale=en&session_state=187ed0fbaab164dd2ff228745124763e26191c1b0a23de9e4a00990edc7a6af7.Mj1su9AmArd26-SXAgmyvg01bf

&

Failed to deserialize scriptable object.
System.Runtime.Serialization.SerializationException: Deserialization into 'Bolt.StateMacro' failed. ---> System.ArgumentException: The provided value for 'Ludiq.GraphNest`2[Bolt.FlowGraph,Bolt.FlowMacro]._macro' does not match the field type.
Provided: Bolt.StateMacro
Expected: Bolt.FlowMacro
  at Ludiq.InstanceFieldAccessor`2[Ludiq.GraphNest`2[Bolt.FlowGraph,Bolt.FlowMacro],Bolt.FlowMacro].SetValue (System.Object target, System.Object value) [0x00022] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Reflection\Optimization\InstanceFieldAccessor.cs:135 
  at Ludiq.OptimizedReflection.SetValueOptimized (System.Reflection.FieldInfo fieldInfo, System.Object target, System.Object value) [0x00000] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Reflection\Optimization\OptimizedReflection.cs:111 
  at Ludiq.FullSerializer.fsMetaProperty.Write (System.Object context, System.Object value) [0x00022] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\Reflection\fsMetaProperty.cs:118 
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x000b3] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\Converters\fsReflectedConverter.cs:105 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_5_Converter (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x0001a] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:861 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_4_Cycles (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x00032] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:851 
  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) [0x00159] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:826 
  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) [0x0011c] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:730 
  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) [0x00049] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:675 
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x0003d] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:628 
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00082] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\Converters\fsReflectedConverter.cs:97 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_5_Converter (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x0001a] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:861 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_4_Cycles (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x00032] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:851 
  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) [0x00159] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:826 
  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) [0x0011c] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:730 
  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) [0x00049] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:675 
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x0003d] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:628 
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result) [0x00000] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:599 
  at Ludiq.FullSerializer.fsIEnumerableConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance_, System.Type storageType) [0x0005b] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\Converters\fsIEnumerableConverter.cs:100 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_5_Converter (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x0001a] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:861 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_4_Cycles (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x00032] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:851 
  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) [0x00159] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:826 
  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) [0x0011c] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:730 
  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) [0x00049] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:675 
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x0003d] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:628 
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00082] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\Converters\fsReflectedConverter.cs:97 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_5_Converter (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x0001a] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:861 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_4_Cycles (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x00032] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:851 
  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) [0x00159] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:826 
  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) [0x0011c] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:730 
  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) [0x00049] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:675 
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x0003d] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:628 
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00082] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\Converters\fsReflectedConverter.cs:97 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_5_Converter (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x0001a] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:861 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_4_Cycles (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x00032] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:851 
  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) [0x00159] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:826 
  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) [0x0011c] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:730 
  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) [0x00049] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:675 
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x0003d] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:628 
  at Ludiq.FullSerializer.fsReflectedConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance, System.Type storageType) [0x00082] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\Converters\fsReflectedConverter.cs:97 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_5_Converter (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x0001a] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:861 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_4_Cycles (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x00032] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:851 
  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) [0x00159] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:826 
  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) [0x0011c] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:730 
  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) [0x00049] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:675 
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Type overrideConverterType, System.Object& result) [0x0003d] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:628 
  at Ludiq.FullSerializer.fsSerializer.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Type storageType, System.Object& result) [0x00000] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:599 
  at Ludiq.FullSerializer.fsIEnumerableConverter.TryDeserialize (Ludiq.FullSerializer.fsData data, System.Object& instance_, System.Type storageType) [0x0005b] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\Converters\fsIEnumerableConverter.cs:100 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_5_Converter (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x0001a] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:861 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_4_Cycles (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x00032] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:851 
  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) [0x00159] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:826 
  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) [0x0011c] in C:\Use<message truncated>

Timeout error;

TimeoutException: Time-out exceeded on main thread function delegate. Potential deadlock.
Ludiq.UnityAPI.Await[HashSet`1] (System.Func`1 func) (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Utilities/UnityAPI.cs:89)
Bolt.UnitBase.Subset (Bolt.UnitOptionFilter filter, UnityEngine.Object owner, Bolt.FlowGraph graph) (at C:/Users/Lazlo/Projects/Ludiq/Bolt.Flow/Editor/Options/UnitBase.cs:165)
Bolt.UnitOptionTree.Prewarm () (at C:/Users/Lazlo/Projects/Ludiq/Bolt.Flow/Editor/Options/UnitOptionTree.cs:52)
Ludiq.FuzzyWindow+<>c__DisplayClass31_0.<Initialize>b__0 () (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Interface/Fuzzy/FuzzyWindow.cs:326)
Ludiq.FuzzyWindow.Work () (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Interface/Fuzzy/FuzzyWindow.cs:217)
UnityEngine.Debug:LogException(Exception)
Ludiq.FuzzyWindow:Work() (at C:/Users/Lazlo/Projects/Ludiq/Ludiq.Core/Editor/Interface/Fuzzy/FuzzyWindow.cs:222)
Bolt Version:
Unity Version:
Platform(s):
Scripting Backend:
.NET Version (API Compatibility Level):
GOOD, I'M SATISFIED
Satisfaction mark by Phill Page 3 years ago

Duplicates 2

Pending Review

Hi Phill, welcome to the community!

First off, I'm very sorry you had this error and lost work in the process.

This is the kind of error that worries me the most (error #2, a deserialization error), and even if this (thankfully!) the only time it's been reported, I want to make sure it never happens again.

Can you remember what you were doing before this error occured?

Did you change a macro file or its meta file manually? 

Right now, it seems Bolt is trying to load state macro data into a flow macro, but I can't quite grasp why without more context or information.

Error #1 is harmless, but I have it myself sometimes and I'll look into it. Error #3 often happens as a side effect of another error, which I believe is #2 right now, the root cause.

Exactly the same thing just happened to me, same error as above. I was up to 8. Enemies & AI just  finished adding EnemyChangedMind macros to transitions. I was in the middle of modifying the 'GroundCheck' macro details when I got the spinning wheel of death while trying to access the fuzzy finder. I exited unity asked to save I did.

When I opened the tutorial project bolt wizard popped up. I lost  all state macros data, I could access the flow macros.

I backed up my tutorial project directory last night so lost only about 1hr of work - more good luck than good management, deleted and copied back up files all working good.

 I am relatively new to  Unity - Any tips on the best way to back up Unity? 

Keeping you informed - I have since got past this step without reproducing this error.

+1

For the backup, you can use Tools > Ludiq > Backup Project to make a zip of the project in 1 click, but of course version control like Git or Subversion is a better way.

I got the same problem on the same place. 

I tried to reproduce the error in a new project, but I didn't find something helpful. 

I was not able to reproduce the error again.

This is really worrisome to me!

Since you all get the error on the enemies section, it must be something related to the macros used in the enemies. Can any of you who can reproduce the deserialization error consistently (e.g. get it at every Unity load) upload the Enemy state macro here? (Enemy.asset)

Also: can you clarify what you mean when you say:

I'm sot sure if this is related but my prefabs aren't being populated with the bolt macro component. In the hierarchy it has the component but it's defaulting to embedded even though it shows to have a macro on it in the project view.

Here you can download my macro files:

Bolt Platformer Tutorial (corrupted files)

Just view the Enemy Flowstate and try to open the "Alive" State.

+1

Thanks for providing files Elin, but I believe your bug is unrelated to this issue.

It's a bug related to the undo failure in nested embed graphs, see this thread:

http://support.ludiq.io/forums/5-bolt/topics/447-undo-fails-in-embedded-nested-graphs/

This should be fixed in v.1.1.3.

Interesting 

I didn't press ctrl + z for a undo. 

It happened exactly at the moment, when I dragged the edge detection macro into the enemys alive Flowstate

+1

I took another look at your files, and found it was another unrelated bug. Thankfully, it was really easy to fix and will work in the next version (your macros are not corrupted).

Thanks for looking into this and your super quick response(s).

Here's my enemy.asset file;

https://1drv.ms/u/s!AoUMlLTnwRyP1wAljLbw7Fr5tstm

& here's the .meta just in case you need it;

https://1drv.ms/u/s!AoUMlLTnwRyP1n_hDzfgvM4RSFV6

I'll try to clarify the above; When I drag a prefab from my project to the scene hierarchy, it has a Bolt component on it (either flow or state) but it is always set to embed when it's dragged in. As an example, lets say in the project view the enemy prefab has a Bolt component with the enemy macro attached to it. When I drag that prefab into the scene it comes in as just an embed and I have to manually turn it into a macro component and drag in the enemy macro each time. I hope that makes more sense now. Let me know if it doesn't :P

And to answer your first question, I'm pretty sure I had just finished the enemy reach edge graph and from what I can remember it was after I hit play once I had put that macro into the patrol graph that it got corrupted.

I haven't touched any .meta files. What do you mean when you ask if I changed a macro manually?

So I won't touch enemies part of the tutorial until this is fixed.. Gonna do some art assets for my game in the meantime.

Maybe a small input from my side: I noticed some of the graphs disappear as well, but after Unity restart they show up again. Also had this spinning wheel a bunch of times in the finder (accompanied with the null pointer exception in the console) and thought regenerating stuff from the wizard would help. It did help, however now I constantly get the wizard window opened when I run Unity as if Bolt wouldn't see it has already been set up previously.


Hope this helps.

Do you get any errors in the console on startup?

Yes, I get this (part of the looong output, let me know if you need the whole thing):

Failed to deserialize behaviour.
System.Runtime.Serialization.SerializationException: Deserialization into 'Bolt.FlowMachine' failed. ---> System.Runtime.Serialization.SerializationException: No object reference provided to deserialize index 2.
  at Ludiq.UnityObjectConverter.TryDeserialize (Ludiq.FullSerializer.fsData storage, System.Object& instance, System.Type storageType) [0x0001a] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Serialization\Converters\UnityObjectConverter.cs:42 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_5_Converter (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x0001a] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:861 
  at Ludiq.FullSerializer.fsSerializer.InternalDeserialize_4_Cycles (System.Type overrideConverterType, Ludiq.FullSerializer.fsData data, System.Type resultType, System.Object& result) [0x00032] in C:\Users\Lazlo\Projects\Ludiq\Ludiq.Core\Runtime\Dependencies\FullSerializer\fsSerializer.cs:851 

That seems to be exactly related.

Can you remember what you were doing when graphs started to disappear?

Well, I think I actually used Ctrl + Z right before that and I pressed it like A LOT of times in a row in order to revert back changes in the graph where I had auto-shooting logic (update -> wait -> shoot stuff). I have also deleted a few .cs files approximately at the same time. 

That's too many actions for me to try to narrow down why it happened. If you see it happen again, please pay attention to what sequence of actions led you there.

+1

Sure, will be glad to help.

Additional observations: I managed to launch Unity and without Bolt showing the wizard window once (I guess it was the last scene opened in Unity which had only one small graph) and now it's back.

What I also did is I opened another scene where I have a just a single simple graph with UI handling. Launched the scene - it worked. Opened up the main scene - launched and the enemy spawn graph disappeared right upon launching the game. I've checked the rest graphs in the scene and they also disappeared. If I restart Unity with that simple UI scene and launch it - everything is fine until I play the main scene. Obviously it's something with one of the graphs causing the issue.

The thing is that currently Bolt doesn't have all the Assemblies added that I've used in creating existing graphs since the settings are not being saved and I get this Wizard window all the time. 

I will try reinstalling Bolt tomorrow and will let you know how it went.

+1

After submitting this report I opened the Backup project and ran through the Setup Wizard two more times, hitting the Deadlock bug again on the same "Generate Inspectors" step the first time, and successfully getting through the entire Setup the second. Immediately all my flows, variables, settings, etc. popped back up so it's good everything was actually lost, just that Bolt or it's dependants were somehow corrupted and not setup I think.

Scary stuff, let's say it's a Halloween-themed bug XD

+1

Just got the same thing when opened up the finder.

+1

I have also had this happen to me a few times.

I just have the same error now... so how to recover the flow machine? 

+3
Pending Review

Hi everyone! This is a major concern for me, but it does indeed seem to be related to this thread, so I'm merging:

http://support.ludiq.io/forums/5-bolt/topics/612-graphs-getting-deletedcorrupted/

I haven't been able to reproduce it yet, but I figured that the timeout exception in the fuzzy finder, or the argument null exception, is not the cause but a symptom.

It is the result of an error that occurs elsewhere in the serialization process. Many reports talk about undoing a lot, or using the variables window, but it's not clear enough for me to pin-point where it's coming from.

I need everyone's help to reproduce this bug! To fix it quickly, we need to find out a step-by-step list of actions I can take from a clean project to trigger the deserialization error. Once I can reproduce it consistently, it will most probably be really easy to fix; the hard part is figuring out when and why it happens!

Not a clean project, but maybe will help - link to screen capture on Google Drive.

1. Basically, I have the deserialization error on Unity start and from all objects, that have flow/state graphs components, only two (RedPlayer and Snowball) do not have it displayed when Unity loads my scene. 

2. When, however, I try to pull one of the prefabs into the scene, you can notice Unity hang for a couple of seconds and Bolt's Wizard window reloads. 

3. After the object is being added to the scene graphs become visible for RedPlayer and Snowball. At the same time you see another deserialization error is being thrown into the console.When I click on the error, Unity highlights the BluePlayer prefab. Note: no matter what prefab I drag into the scene, it always behaves the same way.

4. After this GameManager's flow graph is no longer visible.

I will try to reproduce this error on a clean project though.

+1

Maybe someone having the issue is willing to try screen recordings in the off chance it happens again. Easier to track the steps

+4

I actually can reproduce this every time now. Still trying to find the underlying reason, incase there is multiple ways this happens, but I think I eliminated this having anything to do with flow graphs themselves. I think it is state machine based. As it wasn't happening when adding a flow machine instead of a state machine to the object. But this is the minimal steps to take to make it happen how I did. Here are the steps:

  • Add a gameobject in the hierarchy.
  • Add a state machine to that gameobject.
  • Add a graph variable to the first state. I assigned a type. probably dont need to.
  • Drag the gameobject to the project folder to create a prefab.
  • Delete the state in the state machine.

Instantly says Failed to Deserialize.


*EDIT: Here is the video*


+4

Thanks for the report, I've been able to reproduce it somewhat and I'll look into what causes it.

+2

Found & fixed this one, it was a very silly & small mistake.

If other people have other scenarios in which they have deserialization errors, please let me know!

Great! Can't wait to continue the tutorial ☼☼☼

+4

I think I found & fixed 2 causes of deserialization errors. However, there may be more, so I'm leaving this topic open.

If you still experience deserialization errors, please post a step-by-step list of instructions to systematically reproduce it from a clean project.

On a related note, I'm getting shot to the top of this page when I click reply and having to scroll back down.

I'm doing a tutorial and building a flow graph macro source on an an empty object that is the parent of a sphere.  The tutorial showed the user dragging the child sphere directly into the graph, but that was not able to be done.  However, converting the source to embed allowed me to do it.  I can go back and forth between Macro and Embed and the graph is unchanged.  After switching back to Macro, and overwriting the Macro in the save dialog that pops up, I can successfully play the scene that references the scene object even though it should have been deleted.  I save a working scene and project, close Unity, open Unity, open my project, and ALL my graphs are empty, but still showing in the Assets folder.  Even ones I didn't convert.  I get an error that says, "failed to deserialize scriptable object."  I can reproduce this over and over.

Here's where things get tricky.   I'm playing with this convert feature and things aren't working quite as expected.

The manual states about converting from Macro to Embed:

"To do so, simply click on the Convert button. A dialog will warn your that this conversion will permanently overwrite your current embed graph, so make sure you're OK with this before moving on."

This doesn't happen when I click Convert, the drop down just instantly changes to say Embed.  If I click on the drop down that says Macro, and choose Embed from the list that shows up, there's no confirmation dialog there, either.  However, my original flow graph instantly disappears and is replaced with a start and update event.

The manual states about converting from Embed to Macro:

"To do so, simply click on the Convert button and choose a path and file name for the new macro. Bolt will copy all the items in your embed graph to the macro (except scene references, which are not supported in macros). The machine will then automatically switch to macro mode and reference your new graph.

A dialog will warn your that this switch will permanently delete your current embed graph, so make sure you're OK with this before moving on."

I can choose a path and file name in the dialog that pops up and that new Macro will be created and show up in my project folder, but again, there is no dialog warning me that the switch will permanently delete my current graph.  It just happens.  However, if I click the Embed drop down and choose Macro I will get a dialog warning me that if I switch to Macro it will delete the current embed graph, and I can choose to Switch or Cancel.  If I choose Switch, Boom!  The graph is gone, but I never see a dialog asking for a path and file name.

Hi, you can use GameObject.Find or GameObject.FindWithTag instead of dragging. Make sure you put your object in variable so performance is better if you are using it every frame. Simply always use Macros to avoid all the problems Embed brings. Good luck 😊

Hi Crystalius,

I appreciate the effort, but your reply is mostly irrelevant to my issues.

I agree about website problem. Just got shot up too :)

Sorry, forgot about deserialization, which is main problem for you. This doesn't sound good. Never using Embed graphs would probably solve your issue. Also obvious but make sure you are using newest stable Bolt and no old Unity  :)

My previous reply is pretty relevant as it's showing how you could survive without Embed graph dragging, because, if I understand correctly, object dragging to graph is the only reason you use Embed graphs for :)

Sorry, I should have said "mostly" instead of completely.

I've created a new topic to hopefully make it more clear what my problem is:
https://support.ludiq.io/communities/5/topics/2625-flow-machine-source-interaction-not-behaving-correctly

I think the deserialization is a symptom of the real problem, which is that the Bolt interactions on the flow machine are not performing as expected.  I was reading other posts and the developer mentioned being able to consistently reproduce the problem, so I described how I found the problem in detail.  I can repeat the same steps over and over to get the deserialization error, but the actual problem is with Bolt.

And as I mentioned, I was following a tutorial:


I would have preferred to make the object a prefab and use a macro, but that's not how the tutorial went.  Somehow the user in the tutorial pulled off something they shouldn't have been able to do, creating confusion for people following along, and forcing me to experiment with Bolt and the Editor, then discovering the bug.

I understand how to avoid the deserialization issue now, but Bolt still isn't working the way it's suppose to.  It does seem to be doing what the manual says it should do as an end result, it's just not doing it the way the manual says it should do it.  I'm not getting notifications or confirmations, and not seeing visual cues in the editor about the changes I'm doing, making it possible to destroy my graphs and ruin my project without even realizing it happened.  Based on Bolt and the Editor alone, I still wouldn't know what's happening.  I'm making the assumption about what's happening based on what the manual says is supposed to be happening.  So, that's my main problem.

+1

Hi Noble Valerian,

This thread has been closed as of 1 year ago. Please start a new bug report that includes your Bolt version, Unity version, and the full stack trace of the "failed to deserialize" error. Thanks!

How do I see that it's been closed, for future reference?  I did create a new topic to better address that the "failed to deserialize" error is a symptom of the real problem.

https://support.ludiq.io/communities/5/topics/2625-flow-machine-source-interaction-not-behaving-correctly

+1

When a topic is labeled in green (Fixed, Answered, etc.), it means we consider the described issue / question to have been addressed.

I've run into a few forum admins who are total di**s, acting like I'm intentionally trying to cause chaos and conflict because I don't magically understand some unwritten posting etiquette.  Point being, I have to ask what the best way to handle a situation where the problem is already described somewhere, and addressed, but I have the same or similar issue a year later.  Do I read the green one and add new info, or always create a new topic like you asked here?

I hope to be using Bolt a good while, and I don't want to piss anyone off.  Especially since reporting bugs and issues means I'm already struggling to be objective and polite while frustrated by failing to solve my problem.

This is great, thank you. I'll go through the tutorial again once the fix has been implemented or I might go through it before the fix, just with some incremental saves!