issue with setting ?cancelable - SOLVED, but why?

Hi guys,
I’m having issues inside a function which sets a ?cancelable variable inside of a map.

Everything sets up and runs fine to a Print statement, Print(“Fail Trigger fully set”), which also outputs to the UEFN log. This happens inside the Start(Agent_Q:?agent) function

The game client then becomes unresponsive, having to return to the lobby to continue or having it timeout. UEFN then logs that the connection timed out:
LogNet: Warning: UNetConnection::Tick: Connection TIMED OUT. Closing connection…

I have had something similar working recently, so I don’t think it will be an actual limit with the engine.

Triggered (potentially) by a Player agent.

Start(Agent_Q:?agent):logic=
        Print("Start")
        if(Agent := Agent_Q?):
            Print("Found Agent")
            if(timer := acc_timer_device[GetDevice("timer")?]):
                if(zone := acc_device[GetDevice("zone")?]):
                    if(timer_d := timer_device[timer.GetDevice()]):
                        fail_trigger_result := SetFailTrigger(timer)
                        if(fail_trigger_result = true):
                            Print("Fail Trigger fully set")
                            Print("Trying SetPassTrigger")
                        else:
                            Print("Failed to fully set Fail Trigger")
                            return false
                        pass_trigger_result := SetPassTrigger(zone)
                        if(pass_trigger_result = true):
                            Print("Pass Trigger fully set")
                            spawn{Timer_Start(Agent)}
                            Print("Spawned Timer")
                            timer_d.Reset()
                            Print("Timer Reset")
                            timer_d.Start()
                            Print("Timer Start")
                            return true
                        else:
                            Print("Failed to fully set Pass Trigger")
                            return false
                    else:
                        Print("Failed to cast timer_d")
                        return false
                else:
                    Print("Failed to find zone")
                    return false
            else:
                Print("Failed to find timer")
                return false
        else:
            Print("Failed to find Agent")
            return false

Fetches a timer_device, subscribes an event and saves its cancelable

    SetFailTrigger(device:acc_device)<transacts>:logic=
        Print("Fail Trigger")
        if(timer_d := acc_timer_device[device].GetDevice()):
            Print("Found timer_d")
            set_cancelable_result := *SetCancelable*(device.CancelableID, timer_d.FailureEvent.Subscribe(Timer_Expire))
            if(set_cancelable_result = true):
                Print("Cancelable Set - {device.CancelableID}")
                return true
            else:
                Print("Failed to set timer failureevent")
                return false
        else:
            Print("Failed to cast timer")
            return false

Check there is a valid slot to register a cancelable, and do so

    SetCancelable(new_ID:int, C:cancelable)<transacts>:logic=
        Print("Set Cancelable")
        if(new_ID < CancelableCount):
            Print("Found Cancelable")
            if(set ActiveCancelables[new_ID] = option{C}):
                Print("Cancelable set to new value - {new_ID}")
                return true
            else:
                Print("Failed to set new value")
                return false
        else:
            Print("Failed to find Cancelable with ID {new_ID}")
            return false

I edited the line:

fail_trigger_result := SetFailTrigger(timer)
if(fail_trigger_result = true):

into

if(SetFailTrigger(timer)?):

And my code started working.

I then hit undo and retried, and the code is still working.
I don’t understand.

-edit
It’s gone back to not working now.