I have discovered a bug when I went to link one of my verse devices to another one. The verse device is called math.verse and I did not have any issues with it running before linking it to the other verse device as an editable. From the math.verse device I was able to link another verse device. But from that other verse device, I cannot add math.verse as an editable there. This will keep UEFN crashing when you build verse code or while loading the project.
Steps to Reproduce
Create two verse devices one with any name, the other math
on the device with any name, add math as an editable, i.e: @editable
mathdev : math = math{}
Attempt to build verse code or launch project
Expected Result
It should crash with Unhandled Exception: EXCEPTION_ACCESS_VIOLATION 0x0000000000000000
Observed Result
Crashes on building code and also relaunching UEFN and loading project
Platform(s)
PC
Additional Notes
I may expect this to be an issue with the built-in libraries and functions, but may help prevent others from crashing if this bug is either fixed or if an error displays when trying to create a verse project with certain names.
I’ve had time today to go back and try to rename the device and editable name, but to no avail it’s still not working. May just be due to the fact that i’m linking each device to each other.
I have tried to create an intermediary third device to see if it would fix the issue and it still persists. I have devices A, B, C. Connected A to C and C to B. B was linked to A and it still will cause crashing
I noticed tonight I’m experiencing the same issue, UEFN crashes when I have two Verse devices that reference each other.
My use case is I have a game controller device, and a mission controller device. My mission controller references my game controller to get global settings, then my game controller references missions to initialize them all.
That was what I was attempting to do anyway, I guess I’ll find another way.
This probably the result of circular reference loop
This crash is produced because you declared your device as not optional
@editable
MathDev: math = math{}
It mean, math{} are automatically instanced, when UEFN load the file verse/ even the editable is not set.
if math contain the same declaration for the any name device, it like
math → new instance of any name → new instance of math → new instance of any name → etc → etc → etc… finished by unreal crash.
To avoid this, you can use optional value on device declaration
Benjf29 is correct- circular references like this aren’t supported. We have an upcoming fix that will let the editor report this as an error instead of crashing.
Thank you for updating us. I went into my logs because I was having a similar issue, so if the circular referencing issue isn’t already fixed, then there is still an issue with it crashing projects.