Error: Ensure condition failed: IsInFailureContext() - Trying to emit a failure jump outside of a failure context!

Please select what you are reporting on:

Verse

What Type of Bug are you experiencing?

Verse

Summary

For loops inside class instance constructors does not create a failure context - thus crashes UEFN if one is required.

Steps to Reproduce

test_class:=class:
    Arr: []int
#...
test_class{
    Arr := for(X:=0..1, true?){
        1
    }
}

Expected Result

This should work fine.

Observed Result

The expression inside the braces of for(X:=0..1, true?) leads to a crash, because Solaris does not create a failure context (even tho it should). Thus true? crashes UEFN.

[2024.01.20-17.24.32:467][359]LogOutputDevice: Error: === Handled ensure: ===
[2024.01.20-17.24.32:467][359]LogOutputDevice: Error: 
[2024.01.20-17.24.32:467][359]LogOutputDevice: Error: Ensure condition failed: IsInFailureContext()  [File:D:\build\++Fortnite\Sync\Engine\Restricted\NotForLicensees\Plugins\Solaris\Source\Solaris\Private\SolarisCodeGenerator.h] [Line: 398] 
[2024.01.20-17.24.32:467][359]LogOutputDevice: Error: Trying to emit a failure jump outside of a failure context!
[2024.01.20-17.24.32:467][359]LogOutputDevice: Error: Stack: 
...

Platform(s)

All

Feel free to hire me as QA :stuck_out_tongue:

UCB-1231 incident has been created. Status is ‘Awaiting Validation’.

Thanks for the report. I’ve reproduced and fixed the bug, although it will take some time for the fix to make it into a release.

1 Like