Runtime crashing bug when reverting an array operation within a <decides> function

Please select what you are reporting on:

Verse

What Type of Bug are you experiencing?

Verse

Summary

Adding a char to a string (and probably extended to adding an element to any array kind) within a <decides><transacts> function that then fails will crash the runtime.

This bug is related to reverting transactions.

Steps to Reproduce

Create a function like this:

CrashingFunction()<decides><transacts>:void=
	var Result: string = ""
	set Result += "a"
	Result.Length > 2 # to make it fail

Then call it:

if (CrashingFunction[]) {}

Expected Result

No runtime crash.

Observed Result

Runtime crash, timing out and ending the session. This occurs most of the time (guesstimate of 9 times out of 10), on rare occasions it randomly works.

Platform(s)

All

The bug seems to have been introduced in 30.00.

Additional Notes

If the array is wrapped within an object, it works perfectly fine.
Here is an equivalent that works without issues, and can serve as a workaround while this bug is present.

working_func_state := class<final>:
	var Result: string = ""

WorkingFunction()<decides><transacts>:void=
	State := working_func_state{}
	set State.Result += "a"
	State.Result.Length > 2

I’m having a similar issue in my code , but I don’t believe it’s strictly related to the situation you mentioned.
Everything works well for a few minutes but when I try to end the game, it crashes the session and I need to start it all over again.

LogNet: Warning: UNetConnection::Tick: Connection TIMED OUT. Closing connection… Elapsed: 30.01, Real: 30.01, Good: 30.01, DriverTime: 4785.74, Threshold: 30.00, [UNetConnection] RemoteAddr: 15.229.123.196:15037, Name: IpConnection_11, Driver: Name:IpNetDriver_11 Def:BeaconNetDriver IpNetDriver_11, IsServer: NO, PC: NULL, Owner: ValkyrieBeaconClient_11, UniqueId: MCP:e652cd9ef6…a06adf6f5629e
LogNet: Error: UEngine::BroadcastNetworkFailure: FailureType = ConnectionTimeout, ErrorString = UNetConnection::Tick: Connection TIMED OUT. Closing connection… Elapsed: 30.01, Real: 30.01, Good: 30.01, DriverTime: 4785.74, Threshold: 30.00, [UNetConnection] RemoteAddr: 15.229.123.196:15037, Name: IpConnection_11, Driver: Name:IpNetDriver_11 Def:BeaconNetDriver IpNetDriver_11, IsServer: NO, PC: NULL, Owner: ValkyrieBeaconClient_11, UniqueId: MCP:e652cd9ef6e4…06adf6f5629e, Driver = Name:IpNetDriver_11 Def:BeaconNetDriver IpNetDriver_11
LogValkyrieRequestManagerEditor: Warning: Encountered Network Error!
LogValkyrieRequestManagerEditor: Error: Failed to handle connection attempt (Network error occurred when connecting to a server after matchmaking completed. Error: UNetConnection::Tick: Connection TIMED OUT. Closing connection… Elapsed: 30.01, Real: 30.01, Good: 30.01, DriverTime: 4785.74, Threshold: 30.00, [UNetConnection] RemoteAddr: 15.229.123.196:15037, Name: IpConnection_11, Driver: Name:IpNetDriver_11 Def:BeaconNetDriver IpNetDriver_11, IsServer: NO, PC: NULL, Owner: ValkyrieBeaconClient_11, UniqueId: MCP:e652cd9ef6…6a06adf6f5629e)
LogValkyrieSummary: Destroying Valkyrie Beacon
LogHttp: Warning: 00000BB35AF08C00: request failed, libcurl error: 28 (Timeout was reached)
LogHttp: Warning: 00000BB35AF08C00: libcurl info message cache 0 ( Trying 10.99.35.125:443…)
LogHttp: Warning: 00000BB35AF08C00: libcurl info message cache 1 (connect to 10.99.35.125 port 443 failed: Timed out)
LogHttp: Warning: 00000BB35AF08C00: libcurl info message cache 2 ( Trying 10.99.34.9:443…)
LogHttp: Warning: 00000BB35AF08C00: libcurl info message cache 3 (ipv4 connect timeout after 7912ms, move on!)
LogHttp: Warning: 00000BB35AF08C00: libcurl info message cache 4 ( Trying 10.99.34.232:443…)
LogHttp: Warning: 00000BB35AF08C00: libcurl info message cache 5 (ipv4 connect timeout after 7912ms, move on!)
LogHttp: Warning: 00000BB35AF08C00: libcurl info message cache 6 (Failed to connect to horde.devtools-dev.epicgames.com port 443 after 30001 ms: Timeout was reached)
LogHttp: Warning: 00000BB35AF08C00: libcurl info message cache 7 (Closing connection)
LogHttp: Warning: 00000BB35AF09A00: request failed, libcurl error: 28 (Timeout was reached)