+2
Fixed

GraphPointerException when continuing flow after outputting control

3d_Artist 2 years ago updated by brccabral 2 weeks ago 25 4 duplicates

Hello,

When I used loop inside superunit gets below error

GraphPointerException: Graph pointer must be within a Bolt.SuperUnit for this operation.
[ Particle System ]
Ludiq.GraphPointer.EnsureWithin[SuperUnit] ()
Ludiq.GraphPointer.GetParent[SuperUnit] ()
Bolt.GraphOutput+<>c__DisplayClass2_0.<Definition>b__0 (Bolt.Flow flow)
Bolt.Flow.InvokeDelegate (Bolt.ControlInput input)
Bolt Version:
Unity Version:
Platform(s):
Scripting Backend:
.NET Version (API Compatibility Level):

Duplicates 4

Inside superunit 

Confirmed

Confirmed, this is a tricky design scoping design issue. Will investigate.

I have the same error, Bolt 1.4.0.



Uh, maybe use this file instead:

Grid Loop.asset

I'm not sure the most recent version was flushed to disk at the time I made this post.

Pending Review

Merging with another thread. The issue of outputting a loop body flow is rather complex to fix in a live architecture, I have to brainstorm new ways to approach this problem.

I think a callback based solution would dovetail nicely with generic delegate support and etc.

Pending Review

Merging because it is related, it's actually the same error; basically the underlying pointer changed by the time you fetch the variable.

Coroutine active on the update:

GraphPointerException: Trying to enter a graph parent element that is not within the current graph.
[ Main Camera > SuperUnit#6d1e1... ]
Ludiq.GraphPointer.EnterParentElement (IGraphParentElement parentElement)
Ludiq.GraphStack.EnterParentElement (IGraphParentElement parentElement)
Bolt.SuperUnit+<>c__DisplayClass7_0.<Definition>b__0 (Bolt.Flow flow)
Bolt.Flow.InvokeDelegate (Bolt.ControlInput input)
UnityEngine.MonoBehaviour:StartCoroutine(IEnumerator)
Bolt.Flow:Run(ControlOutput, Boolean)
Bolt.EventUnit`1:Run(Flow)
Bolt.EventUnit`1:Trigger(GraphReference, EmptyEventArgs)
Bolt.<>c__DisplayClass14_0:<StartListening>b__0(EmptyEventArgs)
Bolt.EventBus:Trigger(EventHook, EmptyEventArgs)
Bolt.EventMachine`2:TriggerRegisteredEvent(EventHook, EmptyEventArgs)
Bolt.EventMachine`2:TriggerEvent(String)
Bolt.EventMachine`2:Update()

Coroutine diactive on the update:

GraphPointerException: Trying to enter a graph parent element that is not within the current graph.

[ Main Camera > SuperUnit#6d1e1... ]
Ludiq.GraphPointer.EnterParentElement (IGraphParentElement parentElement)
Ludiq.GraphStack.EnterParentElement (IGraphParentElement parentElement)
Bolt.SuperUnit+<>c__DisplayClass7_0.<Definition>b__0 (Bolt.Flow flow)
Bolt.Flow.InvokeDelegate (Bolt.ControlInput input)



Any update on this bug? We're seeing a similar behaviour with the Toggle Flow unit inside of a SuperUnit. 




When pulling the graph out of the SuperUnit, there is no error and flow is fine. 
Working on Fix

I'm trying to work out a fix for this one, but it's complex! It is the bugfix priority at the moment.

Fixed in Next Version

Fixed in v.1.4.0f4

Appreciate this is being worked on, I am having the same issue (1.4.0), see my flow machine below. 

Hi Alessandro! Sorry you're still having this issue. Which version of Bolt are you using? You can check from Tools > Bolt > About. I just realized I forgot to upload the latest (v.1.4.0f4 and f5) to the Asset Store, so you might still be on v.1.4.0f3, in which the issue isn't yet fixed.

It only says 1.4.0 on that page, so I might have to update


Update: I changed my machines and now not only I fixed my stack overflow issue, but also the graph point exception is not happening anymore.

I don't know if this is the same Error but in 1.4.0f6 i get sometimes this Error:


GraphPointerException: Missing graph element data for OnButtonClick#5e258....
[ (Destroyed) > SuperUnit#8f266... ]
Ludiq.GraphPointer.GetElementData[Data] (IGraphElementWithData element)
Bolt.GameObjectEventUnit`1[Bolt.EmptyEventArgs].GetHook (Ludiq.GraphReference reference)
Bolt.XEventGraph.TriggerEventHandler[EmptyEventArgs] (Ludiq.GraphStack stack, System.Func`2 predicate, EmptyEventArgs args, System.Func`2 recurse, Boolean force)
Bolt.XEventGraph.TriggerEventHandler[EmptyEventArgs] (Ludiq.GraphStack stack, System.Func`2 predicate, EmptyEventArgs args, System.Func`2 recurse, Boolean force)
Bolt.EventMachine`2[Bolt.FlowGraph,Bolt.FlowMacro].TriggerUnregisteredEvent[EmptyEventArgs] (EventHook hook, EmptyEventArgs args)
Bolt.EventMachine`2[TGraph,TMacro].TriggerUnregisteredEvent (System.String name)
Bolt.EventMachine`2[TGraph,TMacro].OnDrawGizmos ()
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr)


The error is counting up until 999+ and then unity crashes.

When i restart the editor, everything works fine again.

+1

Hi Elin! Not the same error, but it's fixed for v.1.4.0f7, thanks for the report!

+3

I'm sorry to open up this thread again, but the problem is in 1.4.6f3 in Unity 2018.4 still present.
The error appears, as soon, as the timer node is finished.

I'm getting the same error, happened since I followed this section of the tutorial (at 14:50) - linking here so you can reproduce on your end. I'm not sure how to get around this.

Fixed

Looking at this issue again, I realize that it was reported separately and fixed again in v.1.4.7:

https://support.ludiq.io/communities/5/topics/4339-graphpointerexception-after-exiting-timer-toggle-in-super-unit

If you're using a version below, please upgrade to benefit from the fix.

If you're using 1.4.7 or newer and still get an exception, please submit a separate bug report with the full stack trace and reproduction steps.

In my case I had "EnemyWalk" as a Enemy component, removing it from the prefab did solved the issue

+2
Escalated

Oops, sorry all, missed that because it had been marked as fixed.

Will have another look.

My graph is working ok but I´m also receiving this error: 

"Graph pointer must be within a Bolt.SuperUnit for this operation." 

Using 1.4.11 Unity 2019.3.3f1

Sorry, in my case I was using a SuperUnit as a FlowMacro