Editor hangs on awkward router node connections

I’ve been rearranging my node graph and double clicked a connection line between two router nodes to add another router node in between. It turned out that the new router node got connected to the input pin of the previous router node (apparently I had the connection line going from the input pin instead of the output one). I’ve dragged a new connection from the new router node to the output of the previous router node to fix that but that put the editor into infinite loop.

Hi bstone,

  • Does this occur in a clean, blank project with no additional content or is it limited to one project?
  • Can you post your dxdiag here so I can take a look?
  • What steps can I take to reproduce this error on my end?
  • Did the editor crash or did you have to manually shut it down? If it crashed can you post your callstack and crash logs here so I can take a look?

Hi ,

Yes, I’ve been able to reproduce it in a blank project with no content.

My

78955-dxdiag.txt. (5.83 KB)

output is attached.

The steps to reproduce:

  1. Create a blank project with no content
  2. Add a Cube actor
  3. Open the level blueprint and reproduce

I had to manually shut down the editor.

Does this only occur if you create an infinite loop in the execution pins?

I don’t know. That’s there I’ve spotted the issue. I can repeat that with non-execution pins and let you know if that helps.

Hi bstone,

Have you had any luck reproducing this on your end?

Hey ,

I tried it and non-execution pins didn’t let me wire them in the way I wired the execution pins. The moment I wire a non-execution reroute node to another the original reroute node overrides its input whereas with execution pins it adds a new wire to the reroute inputs. Apparently the problem is only related to execution wires where the editor lets you make one reroute node being both the input and the output of another reroute node.

I believe this is due to the nature of execution pins and how they have been coded. It isn’t a bug, but infinite loops will cause freezes and hangs if implemented in code. To avoid this, it is best to remove a connection before making another if an infinite loop would be created in the process.

I think the whole point has been lost. So I will restate it: the editor hangs when a user performs a legit action of wiring graph nodes. It’s not the user creating infinite loops but the editor entering an infinite loop and dying. When it does that it has to be terminated with any unsaved work being lost.

I have attempted this several times and, unfortunately, the only time it hangs is when I attempt to compile the blueprint, which will cause the infinite loop as shown in the image posted above to fire indefinitely, or if I press Play in Editor, which will cause the same error to occur. This is expected in this case.

The best course of action I can suggest is to not wire your nodes in such a way that it will create an infinite loop out of the execution pins (as in the above image). You can prevent this by altering the placement of the reroute nodes or, alternatively, remove the initial connection between the reroute nodes before adding a new connection if you are trying to replace the original connection.

Are you talking about NodeJS?