Using a (super:) can crash UEFN and lock you out of the project.

Please select what you are reporting on:

Verse

What Type of Bug are you experiencing?

Verse

Summary

Calling a (super:) function can crash UEFN and lock ppl out of their project if they don’t change it before loading their projects.

Steps to Reproduce

some_interface:=interface:
    SomeFunction():void
parametric_class(t:type):=class(some_interface):
    SomeFunction<override>():void=
        Print("Super SomeFunction")
child_class:=class(parametric_class(int)):
    SomeFunction<override>():void=
        (super:)SomeFunction()
        Print("Super SomeFunction")

Put this code above into one of your Verse files and build.
->UEFN crashes.

Restart UEFN and open your Project
->UEFN keeps crashing.

Expected Result

UEFN should not be crashing.

Observed Result

UEFN is crashing.

Platform(s)

All

Additional Notes

Feel free to hire me as Verse QA.

I confirm this issue happening on parametric child classes :smiling_face_with_tear:

1 Like

The status of UCB-1006 incident has been moved from ‘Needs Triage’ to ‘Closed’.

2 Likes

@Stevie-Moon Sorry for the ping, can you translate the Bug-Reporter message?
I assumed ‘Done’ means that it was fixed, but i still encounter that crash.

Thank you, I’ll check into it.

2 Likes

Sorry, it looks like the bug was mistakenly closed. I confirmed that the issue isn’t fixed yet, and reopened the bug.

3 Likes

Thank you very much <3
I found a workaround for now, which i will share if anyone else is facing that bug and needs a quick fix

some_interface:=interface:
    SomeFunction():void
base_class:=class(some_interface):
    SomeFunction<override>():void=
        Print("Super SomeFunction")
parametric_class(t:type):=class(base_class):
child_class:=class(parametric_class(int)):
    SomeFunction<override>():void=
        (super:)SomeFunction()
        Print("Super SomeFunction")

Basically moving the function into an ancestor of the parametric_class allows calling (super:)SomeFunction from within the child_class.

Btw, this is the Error captured in the logs:

LogOutputDevice: Error: Ensure condition failed: SuperFunctionBindingData  [File:D:\build\++Fortnite\Sync\Engine\Restricted\NotForLicensees\Plugins\Solaris\Source\Solaris\Private\SolarisCodeGenerator.cpp] [Line: 1530] 

We have a potential fix coming in a future build. We’ll let you know when we have more info.

1 Like

You are HIRED! <3

I wish I was :sneezing_face: