0
Fixed

2.0.0a6 Coroutine Runner

Ex-Crow 8 months ago updated by Lazlo Bonin (Lead Developer) 6 months ago 6




After deleting Runner my Unity UI completely spazzed out. Bolt's context search suggested the Runner object when I was exploring how to do coroutines in Bolt 2.

[Exception] InvalidOperationException: Decorated object is not valid: Runner.
Object has been disposed.
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].CreateDecorator() Assets/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:42
40: if (!IsValid(decorated, out var reason))
41: {
-->42: throw new InvalidOperationException($"Decorated object is not valid: {decorated}.\n{reason}");
43: }

Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].GetDecorator() Assets/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:294
292: if (!decoratorExists)
293: {
-->294: decorator = CreateDecorator(decorated);
296: decorators.Add(decorated, decorator);

DescriptorProvider.Descriptor() Assets/Ludiq/Ludiq.Core/Editor/Descriptors/DescriptorProvider.cs:41
39: public IDescriptor Descriptor(object target)
40: {
-->41: return GetDecorator(target);
42: }

XDescriptorProvider.Descriptor() Assets/Ludiq/Ludiq.Core/Editor/Descriptors/DescriptorProvider.cs:56
54: public static IDescriptor Descriptor(this object target)
55: {
-->56: return DescriptorProvider.instance.Descriptor(target);
57: }

ExplorerMemberItem.get_displayName() Assets/Ludiq/Bolt.Core/Editor/Exploration/TreeView/ExplorerMemberItem.cs:19
17:  public override string displayName
18: {
-->19: get => member.Descriptor().title;
20: set => throw new NotSupportedException();
21: }

TreeViewGUI.DoItemGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:237

TreeViewGUI.OnRowGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:198

TreeViewController.DoItemGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:493

TreeViewController.IterateVisibleItems() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:691

TreeViewController.OnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:594

TreeView.OnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewControl/TreeViewControl.cs:423

ExplorerTreeView.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/TreeView/ExplorerTreeView.cs:331
329: }
-->331: base.OnGUI(rect);
332: }

ExplorerWindow.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/ExplorerWindow.cs:430
428: // Draw Tree View
429: var treeViewPosition = GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true));
-->430: treeView.OnGUI(treeViewPosition);
432: // Draw Editor

MonoMethod.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

RenderChain.Render() C:/buildslave/unity/build/Modules/UIElements/Renderer/UIRChainBuilder.cs:238

UIRRepaintUpdater.DrawChain() C:/buildslave/unity/build/Modules/UIElements/Renderer/UIRRepaintUpdater.cs:66

UIRRepaintUpdater.Update() C:/buildslave/unity/build/Modules/UIElements/Renderer/UIRRepaintUpdater.cs:54

VisualTreeUpdater.UpdateVisualTree() C:/buildslave/unity/build/Modules/UIElements/VisualTreeUpdater.cs:72

Panel.Repaint() C:/buildslave/unity/build/Modules/UIElements/Panel.cs:637

UIElementsUtility.DoDispatch() C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:240

UIElementsUtility.ProcessEvent() C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:78

GUIUtility.ProcessEvent() C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179

[Exception] ArgumentException: Getting control 1's position in a group with only 1 controls when doing repaint
Aborting
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
GUILayoutGroup.GetNext() C:/buildslave/unity/build/Modules/IMGUI/LayoutGroup.cs:122

GUILayoutUtility.DoGetRect() C:/buildslave/unity/build/Modules/IMGUI/GUILayoutUtility.cs:428

GUILayoutUtility.GetRect() C:/buildslave/unity/build/Modules/IMGUI/GUILayoutUtility.cs:385

ExplorerWindow.OnEditorResizeGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/ExplorerWindow.cs:511
509: else if (layout == Layout.Vertical)
510: {
-->511:   separatorPosition = GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.Height(1), GUILayout.ExpandWidth(true));
512:   resizeArea = separatorPosition.ExpandBy(new RectOffset(0, 0, 0, resizeAreaGrip));
513:   EditorGUIUtility.AddCursorRect(resizeArea, MouseCursor.ResizeVertical);

ExplorerWindow.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/ExplorerWindow.cs:435
433: if (layout != Layout.NoEditor)
434: {
-->435: OnEditorResizeGUI(layout);
437: if (layout == Layout.Horizontal)

MonoMethod.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

RenderChain.Render() C:/buildslave/unity/build/Modules/UIElements/Renderer/UIRChainBuilder.cs:238

UIRRepaintUpdater.DrawChain() C:/buildslave/unity/build/Modules/UIElements/Renderer/UIRRepaintUpdater.cs:66

UIRRepaintUpdater.Update() C:/buildslave/unity/build/Modules/UIElements/Renderer/UIRRepaintUpdater.cs:54

VisualTreeUpdater.UpdateVisualTree() C:/buildslave/unity/build/Modules/UIElements/VisualTreeUpdater.cs:72

Panel.Repaint() C:/buildslave/unity/build/Modules/UIElements/Panel.cs:637

UIElementsUtility.DoDispatch() C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:240

UIElementsUtility.ProcessEvent() C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:78

GUIUtility.ProcessEvent() C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179
Bolt Version:
2.0.0a6
Unity Version:
2019.2.15
Platform(s):
PC
Scripting Backend:
Mono
.NET Version (API Compatibility Level):
.NET 4.x
Bolt 2
Need More Information

Hi TowerCrow,

I can't get this to reproduce here.

Can you paste exact numbered steps?

When you say you deleted Runner, did you mean the variable itself or the unit getting the variable? 

I deleted the variable itself. 

From my memory:

1. Add coroutine unit. 

2. From the runner input drag out a connection for context search and choose the first option which creates the runner variable. 

3. Then from runner unit's target input drag a new connection and choose the first option which will create the target var. 

4. Run play mode with the graph being active in the scene

5. Exit play mode, delete runner variable. 

There might've been a new wait for seconds and a debug log inside the coroutine. I'm now in bed but I'll do more tests tomorrow. 




I could not reproduce the issue in my following tests.

Just happened again after deleting a behaviour graph:

[Exception] InvalidOperationException: Decorated object is not valid: mybehaviour#4c292b8a#-659784064.
Object has been disposed.
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].CreateDecorator() Assets/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:42
40: if (!IsValid(decorated, out var reason))
41: {
-->42: throw new InvalidOperationException($"Decorated object is not valid: {decorated}.\n{reason}");
43: }

Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].GetDecorator() Assets/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:294
292: if (!decoratorExists)
293: {
-->294: decorator = CreateDecorator(decorated);
296: decorators.Add(decorated, decorator);

DescriptorProvider.Descriptor() Assets/Ludiq/Ludiq.Core/Editor/Descriptors/DescriptorProvider.cs:41
39: public IDescriptor Descriptor(object target)
40: {
-->41: return GetDecorator(target);
42: }

XDescriptorProvider.Descriptor() Assets/Ludiq/Ludiq.Core/Editor/Descriptors/DescriptorProvider.cs:56
54: public static IDescriptor Descriptor(this object target)
55: {
-->56: return DescriptorProvider.instance.Descriptor(target);
57: }

ExplorerMemberItem.get_displayName() Assets/Ludiq/Bolt.Core/Editor/Exploration/TreeView/ExplorerMemberItem.cs:19
17: public override string displayName
18: {
-->19: get => member.Descriptor().title;
20: set => throw new NotSupportedException();
21: }

TreeViewGUI.DoItemGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:237

TreeViewGUI.OnRowGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:198

TreeViewController.DoItemGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:493

TreeViewController.IterateVisibleItems() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:691

TreeViewController.OnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:594

TreeView.OnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewControl/TreeViewControl.cs:423

ExplorerTreeView.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/TreeView/ExplorerTreeView.cs:331
329: }
-->331: base.OnGUI(rect);
332: }

ExplorerWindow.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/ExplorerWindow.cs:430
428: // Draw Tree View
429: var treeViewPosition = GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true));
-->430: treeView.OnGUI(treeViewPosition);
432: // Draw Editor

MonoMethod.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

MonoMethod.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

MethodBase.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

HostView.Invoke() C:/buildslave/unity/build/Editor/Mono/HostView.cs:359

HostView.Invoke() C:/buildslave/unity/build/Editor/Mono/HostView.cs:353

HostView.InvokeOnGUI() C:/buildslave/unity/build/Editor/Mono/HostView.cs:329

DockArea.DrawView() C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:374

DockArea.OldOnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:341

IMGUIContainer.DoOnGUI() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:298

IMGUIContainer.HandleIMGUIEvent() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:483

IMGUIContainer.HandleIMGUIEvent() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:466

IMGUIContainer.HandleEvent() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:447

MouseCaptureDispatchingStrategy.DispatchEvent() C:/buildslave/unity/build/Modules/UIElements/Events/MouseCaptureDispatchingStrategy.cs:93

EventDispatcher.ProcessEvent() C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:280

EventDispatcher.Dispatch() C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:156

BaseVisualElementPanel.SendEvent() C:/buildslave/unity/build/Modules/UIElements/Panel.cs:190

UIElementsUtility.DoDispatch() C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:255

UIElementsUtility.ProcessEvent() C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:78

GUIUtility.ProcessEvent() C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179


[Exception] InvalidOperationException: Decorated object is not valid: mybehaviour#4c292b8a#-659784064.
Object has been disposed.
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].CreateDecorator() Assets/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:42
40: if (!IsValid(decorated, out var reason))
41: {
-->42: throw new InvalidOperationException($"Decorated object is not valid: {decorated}.\n{reason}");
43: }

Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].GetDecorator() Assets/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:294
292: if (!decoratorExists)
293: {
-->294: decorator = CreateDecorator(decorated);
296: decorators.Add(decorated, decorator);

DescriptorProvider.Descriptor() Assets/Ludiq/Ludiq.Core/Editor/Descriptors/DescriptorProvider.cs:41
39: public IDescriptor Descriptor(object target)
40: {
-->41: return GetDecorator(target);
42: }

XDescriptorProvider.Descriptor() Assets/Ludiq/Ludiq.Core/Editor/Descriptors/DescriptorProvider.cs:56
54: public static IDescriptor Descriptor(this object target)
55: {
-->56: return DescriptorProvider.instance.Descriptor(target);
57: }

ExplorerMemberItem.get_displayName() Assets/Ludiq/Bolt.Core/Editor/Exploration/TreeView/ExplorerMemberItem.cs:19
17:  public override string displayName
18: {
-->19: get => member.Descriptor().title;
20: set => throw new NotSupportedException();
21: }

TreeViewGUI.DoItemGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:237

TreeViewGUI.OnRowGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:198

TreeViewController.DoItemGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:493

TreeViewController.IterateVisibleItems() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:691

TreeViewController.OnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:594

TreeView.OnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewControl/TreeViewControl.cs:423

ExplorerTreeView.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/TreeView/ExplorerTreeView.cs:331
329: }
-->331: base.OnGUI(rect);
332: }

ExplorerWindow.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/ExplorerWindow.cs:430
428: // Draw Tree View
429: var treeViewPosition = GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true));
-->430: treeView.OnGUI(treeViewPosition);
432: // Draw Editor

MonoMethod.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

MonoMethod.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

MethodBase.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

HostView.Invoke() C:/buildslave/unity/build/Editor/Mono/HostView.cs:359

HostView.Invoke() C:/buildslave/unity/build/Editor/Mono/HostView.cs:353

HostView.InvokeOnGUI() C:/buildslave/unity/build/Editor/Mono/HostView.cs:329

DockArea.DrawView() C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:374

DockArea.OldOnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:341

IMGUIContainer.DoOnGUI() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:298

IMGUIContainer.HandleIMGUIEvent() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:483

IMGUIContainer.HandleIMGUIEvent() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:466

IMGUIContainer.HandleEvent() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:447

MouseCaptureDispatchingStrategy.DispatchEvent() C:/buildslave/unity/build/Modules/UIElements/Events/MouseCaptureDispatchingStrategy.cs:93

EventDispatcher.ProcessEvent() C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:280

EventDispatcher.Dispatch() C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:156

BaseVisualElementPanel.SendEvent() C:/buildslave/unity/build/Modules/UIElements/Panel.cs:190

UIElementsUtility.DoDispatch() C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:255

UIElementsUtility.ProcessEvent() C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:78

GUIUtility.ProcessEvent() C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179

[Warning] Skipping serialization of function (ClassDefinition) to prevent data loss because it failed to deserialize.
Serialization.OnBeforeSerializeImplementation() Assets/Ludiq/Ludiq.Core/Runtime/Serialization/Serialization.cs:621
619: if (deserializationFailed)
620: {
-->621: Debug.LogWarning($"Skipping serialization of {uo.ToSafeString()} to prevent data loss because it failed to deserialize.\n", uo);
622: return;
623: }

Ludiq.LudiqAsset.UnityEngine.ISerializationCallbackReceiver.OnBeforeSerialize() Assets/Ludiq/Ludiq.Core/Runtime/Unity/LudiqAsset.cs:21
19: void ISerializationCallbackReceiver.OnBeforeSerialize()
20: {
-->21: Serialization.OnBeforeSerializeImplementation(this, ref _fullData, ref _odinData, _deserializationFailed);
22: }

EditorApplication.Internal_CallGlobalEventHandler() C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:432

[Warning] Inspector block accessor mismatch.
Started Square (ClassComponent).host.cb9a0bc0-84a9-40ad-a16f-8c4cb2bb7685, ended Square (ClassComponent).
Inspector.EndBlock() Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:794
792: if (block.accessor != accessor)
793: {
-->794: Debug.LogWarning($"Inspector block accessor mismatch.\nStarted {block.accessor}, ended {accessor}.");
796: if (LudiqCore.Configuration.developerMode && LudiqCore.Configuration.debugInspectorGUI && e.type == EventType.Repaint)

Inspector.EndBlock() Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:779
777: public bool EndBlock()
778: {
-->779: return EndBlock(accessor);
780: }

Inspector.DrawControl() Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:458
456: OnControlGUI(position);
-->458: if (EndBlock())
459: {
460: OnChange();

Inspector.DrawControlLayout() Assets/Ludiq/Ludiq.Core/Editor/Inspection/Inspector.cs:854
852: public void DrawControlLayout(float scrollbarTrigger = LudiqGUIUtility.scrollBarWidth)
853: {
-->854: DrawControl(GetControlLayoutPosition(scrollbarTrigger));
855: }

Ludiq.Persistent.OnGUI() Assets/Ludiq/Ludiq.Core/Editor/Inspection/Root/LudiqRootObjectEditor.cs:48
46: LudiqGUI.Space(EditorGUIUtility.standardVerticalSpacing);
-->48: editor.DrawControlLayout(21);
50: if (EditorGUI.EndChangeCheck())

PersistentRootEditorWrapper.OnInspectorGUI() Assets/Ludiq/Ludiq.Core/Editor/Inspection/PersistentRootEditorWrapper.cs:27
25: }
-->27: editor.OnGUI();
28: }

EditorApplication.Internal_CallGlobalEventHandler() C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:432

[Exception] InvalidOperationException: Decorated object is not valid: mybehaviour#4c292b8a#-659784064.
Object has been disposed.
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].CreateDecorator() Assets/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:42
40: if (!IsValid(decorated, out var reason))
41: {
-->42: throw new InvalidOperationException($"Decorated object is not valid: {decorated}.\n{reason}");
43: }

Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].GetDecorator() Assets/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:294
292: if (!decoratorExists)
293: {
-->294: decorator = CreateDecorator(decorated);
296: decorators.Add(decorated, decorator);

DescriptorProvider.Descriptor() Assets/Ludiq/Ludiq.Core/Editor/Descriptors/DescriptorProvider.cs:41
39: public IDescriptor Descriptor(object target)
40: {
-->41: return GetDecorator(target);
42: }

XDescriptorProvider.Descriptor() Assets/Ludiq/Ludiq.Core/Editor/Descriptors/DescriptorProvider.cs:56
54: public static IDescriptor Descriptor(this object target)
55: {
-->56: return DescriptorProvider.instance.Descriptor(target);
57: }

ExplorerMemberItem.get_displayName() Assets/Ludiq/Bolt.Core/Editor/Exploration/TreeView/ExplorerMemberItem.cs:19
17:  public override string displayName
18: {
-->19: get => member.Descriptor().title;
20: set => throw new NotSupportedException();
21: }

TreeViewGUI.DoItemGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:237

TreeViewGUI.OnRowGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:198

TreeViewController.DoItemGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:493

TreeViewController.IterateVisibleItems() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:691

TreeViewController.OnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:594

TreeView.OnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewControl/TreeViewControl.cs:423

ExplorerTreeView.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/TreeView/ExplorerTreeView.cs:331
329: }
-->331: base.OnGUI(rect);
332: }

ExplorerWindow.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/ExplorerWindow.cs:430
428: // Draw Tree View
429: var treeViewPosition = GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true));
-->430: treeView.OnGUI(treeViewPosition);
432: // Draw Editor

MonoMethod.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

MonoMethod.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

MethodBase.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

HostView.Invoke() C:/buildslave/unity/build/Editor/Mono/HostView.cs:359

HostView.Invoke() C:/buildslave/unity/build/Editor/Mono/HostView.cs:353

HostView.InvokeOnGUI() C:/buildslave/unity/build/Editor/Mono/HostView.cs:329

DockArea.DrawView() C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:374

DockArea.OldOnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:341

IMGUIContainer.DoOnGUI() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:298

IMGUIContainer.HandleIMGUIEvent() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:483

IMGUIContainer.HandleIMGUIEvent() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:466

CommandEventDispatchingStrategy.DispatchEvent() C:/buildslave/unity/build/Modules/UIElements/Events/CommandEventDispatchingStrategy.cs:18

EventDispatcher.ProcessEvent() C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:280

EventDispatcher.Dispatch() C:/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:156

BaseVisualElementPanel.SendEvent() C:/buildslave/unity/build/Modules/UIElements/Panel.cs:190

UIElementsUtility.DoDispatch() C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:255

UIElementsUtility.ProcessEvent() C:/buildslave/unity/build/Modules/UIElements/UIElementsUtility.cs:78

GUIUtility.ProcessEvent() C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179

EditorApplication.Internal_CallGlobalEventHandler() C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:432



[Error] (2) GUI Error: You are pushing more GUIClips than you are popping. Make sure they are balanced.
UnityEditor.EditorApplication:Internal_CallGlobalEventHandler() (at C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:432)


[Exception] InvalidOperationException: Decorated object is not valid: mybehaviour#4c292b8a#-659784064.
Object has been disposed.
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].CreateDecorator() Assets/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:42
40: if (!IsValid(decorated, out var reason))
41: {
-->42: throw new InvalidOperationException($"Decorated object is not valid: {decorated}.\n{reason}");
43: }

Ludiq.SingleDecoratorProvider`3[TDecorated,TDecorator,TAttribute].GetDecorator() Assets/Ludiq/Ludiq.Core/Editor/Decorators/SingleDecoratorProvider.cs:294
292: if (!decoratorExists)
293: {
-->294: decorator = CreateDecorator(decorated);
296: decorators.Add(decorated, decorator);

DescriptorProvider.Descriptor() Assets/Ludiq/Ludiq.Core/Editor/Descriptors/DescriptorProvider.cs:41
39: public IDescriptor Descriptor(object target)
40: {
-->41: return GetDecorator(target);
42: }

XDescriptorProvider.Descriptor() Assets/Ludiq/Ludiq.Core/Editor/Descriptors/DescriptorProvider.cs:56
54: public static IDescriptor Descriptor(this object target)
55: {
-->56: return DescriptorProvider.instance.Descriptor(target);
57: }

ExplorerMemberItem.get_displayName() Assets/Ludiq/Bolt.Core/Editor/Exploration/TreeView/ExplorerMemberItem.cs:19
17:  public override string displayName
18: {
-->19: get => member.Descriptor().title;
20: set => throw new NotSupportedException();
21: }

TreeViewGUI.DoItemGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:237

TreeViewGUI.OnRowGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewGUI.cs:198

TreeViewController.DoItemGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:493

TreeViewController.IterateVisibleItems() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:691

TreeViewController.OnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewController.cs:594

TreeView.OnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/TreeView/TreeViewControl/TreeViewControl.cs:423

ExplorerTreeView.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/TreeView/ExplorerTreeView.cs:331
329: }
-->331: base.OnGUI(rect);
332: }

ExplorerWindow.OnGUI() Assets/Ludiq/Bolt.Core/Editor/Exploration/ExplorerWindow.cs:430
428: // Draw Tree View
429: var treeViewPosition = GUILayoutUtility.GetRect(GUIContent.none, GUIStyle.none, GUILayout.ExpandHeight(true), GUILayout.ExpandWidth(true));
-->430: treeView.OnGUI(treeViewPosition);
432: // Draw Editor

MonoMethod.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

MonoMethod.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

MethodBase.Invoke() <567df3e0919241ba98db88bec4c6696f>:0

HostView.Invoke() C:/buildslave/unity/build/Editor/Mono/HostView.cs:359

HostView.Invoke() C:/buildslave/unity/build/Editor/Mono/HostView.cs:353

HostView.InvokeOnGUI() C:/buildslave/unity/build/Editor/Mono/HostView.cs:329

DockArea.DrawView() C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:374

DockArea.OldOnGUI() C:/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:341

IMGUIContainer.DoOnGUI() C:/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:281

EditorApplication.Internal_CallGlobalEventHandler() C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:432

Error:

[Error] Failed to run OnAfterDeserialize on ClassDefinition#19428.
System.NotSupportedException: Stop may only be called on coroutines.
at Ludiq.Bolt.Flow.StopCoroutine (System.Boolean disposeInstantly) [0x0000f] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Flow\Runtime\Flow.cs:348
at Ludiq.Bolt.CoroutineUnit.Uninstantiate (Ludiq.Bolt.GraphReference instance) [0x0002c] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Flow\Runtime\Units\Flow\CoroutineUnit.cs:165
at Ludiq.Bolt.GraphInstances.Uninstantiate (Ludiq.Bolt.GraphReference instance) [0x0005e] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Core\Runtime\Graphs\GraphInstances.cs:106
at Ludiq.Bolt.ClassHost.UninstantiateLive () [0x00023] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Core\Runtime\Architecture\ClassHost.cs:359
at Ludiq.Bolt.ClassHost.Uninstantiate () [0x0004e] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Core\Runtime\Architecture\ClassHost.cs:276
at Ludiq.Bolt.ClassHost.OnDefinitionPropertyChanged (System.Object sender, System.ComponentModel.PropertyChangedEventArgs args) [0x0001b] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Core\Runtime\Architecture\ClassHost.cs:158
at (wrapper delegate-invoke) .invoke_void_object_PropertyChangedEventArgs(object,System.ComponentModel.PropertyChangedEventArgs)
at Ludiq.Bolt.TypeDefinition.OnPropertyChanged (System.Object sender, System.ComponentModel.PropertyChangedEventArgs args) [0x00001] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Core\Runtime\Architecture\TypeDefinition.cs:186
at Ludiq.Bolt.TypeDefinition.OnPropertyChanged (System.String propertyName) [0x00001] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Core\Runtime\Architecture\TypeDefinition.cs:191
at Ludiq.Bolt.TypeDefinition.OnMembersChanged (System.Object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs args) [0x00001] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Core\Runtime\Architecture\TypeDefinition.cs:196
at Ludiq.ParentMergedCollection`3[TParent,TKey,TItem].OnCollectionChanged (System.Object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs args) [0x00015] in C:\GameDev\Bolt2a6\Assets\Ludiq\Ludiq.Core\Runtime\Collections\ParentMergedCollection.cs:53
at Ludiq.ParentMergedCollection`3[TParent,TKey,TItem].Replace (System.Collections.Generic.IEnumerable`1[T] items) [0x00060] in C:\GameDev\Bolt2a6\Assets\Ludiq\Ludiq.Core\Runtime\Collections\ParentMergedCollection.cs:114
at Ludiq.Bolt.TypeDefinition.OnAfterDependenciesDeserialized () [0x00001] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Core\Runtime\Architecture\TypeDefinition.cs:151
at Ludiq.Serialization.CheckIfDependenciesMet (Ludiq.ISerializationDepender depender) [0x00064] in C:\GameDev\Bolt2a6\Assets\Ludiq\Ludiq.Core\Runtime\Serialization\Serialization.cs:874
at Ludiq.Serialization.AwaitDependencies (Ludiq.ISerializationDepender depender) [0x0000d] in C:\GameDev\Bolt2a6\Assets\Ludiq\Ludiq.Core\Runtime\Serialization\Serialization.cs:802
at Ludiq.Bolt.TypeDefinition.OnAfterDeserialize () [0x00008] in C:\GameDev\Bolt2a6\Assets\Ludiq\Bolt.Core\Runtime\Architecture\TypeDefinition.cs:146
at Ludiq.LudiqAsset.Ludiq.ILudiqRootObject.OnAfterDeserialize () [0x00001] in C:\GameDev\Bolt2a6\Assets\Ludiq\Ludiq.Core\Runtime\Unity\LudiqAsset.cs:46
at Ludiq.Serialization.OnAfterDeserializeImplementation[T] (T uo, Ludiq.FullSerializationData fullData, Ludiq.OdinSerializer.SerializationData odinData, System.Boolean& deserializationFailed) [0x000ca] in C:\GameDev\Bolt2a6\Assets\Ludiq\Ludiq.Core\Runtime\Serialization\Serialization.cs:725
Serialization.OnAfterDeserializeImplementation() Assets/Ludiq/Ludiq.Core/Runtime/Serialization/Serialization.cs:729
727: catch (Exception ex)
728: {
-->729: Debug.LogError($"Failed to run OnAfterDeserialize on {uo.ToSafeString()}.\n{ex}", uo);
730: return;
731: }

Ludiq.LudiqAsset.UnityEngine.ISerializationCallbackReceiver.OnAfterDeserialize() Assets/Ludiq/Ludiq.Core/Runtime/Unity/LudiqAsset.cs:26
24: void ISerializationCallbackReceiver.OnAfterDeserialize()
25: {
-->26: Serialization.OnAfterDeserializeImplementation(this, _fullData, _odinData, ref _deserializationFailed);
27: }

EditorApplication.Internal_CallGlobalEventHandler() C:/buildslave/unity/build/Editor/Mono/EditorApplication.cs:432





I tried reproducing again with your additional steps (thanks!) but couldn't. I did fix another issue along the way though. I'll leave this as NMI for now.

Fixed

I believe this was fixed indeed from my last attempt by looking at the stack traces. Please feel free to reopen a thread if anything similar ever occurs again.