Undetected Verse crash (?), Verse device only infinite server freeze (?)

Summary

There’s no way for us to repro so I’m just going to throw it there, we’re having this bug where multiple Verse scripts appear broken on the map (multiple verse scripts coming from different creative_device classes), so we’ll have a button not reacting to interacts anymore and a particle system spawn animation not playing

Some other devices seem to keep working (but I’m not sure)
1.0 devices seem to still working (e.g. zombies are still spawning; not sure if DEB was working still)
Movements/shooting is not stuttery, not laggy

Issue happened for sure around January 21th 4:35am GMT for user 63919e6b189c4a07a08408cdd13e5b75 on island code 2333-8797-6447

We’ve seen it happen 2 times already, and I’m sending this because I don’t think my code is faulty, and there’s no error shown in the creator portal, except a few ErrRuntime_ComputationLimitExceeded occurences, but I cannot check if the timestamps match since it only shows the time of the first and the last occurrence of the crash

We’re also using verse crash detection in order to restart a new round but it’s not triggering, and there’s no Verse related crashes on the creator portal, so I’m really suspecting a server freeze, but I don’t think the server ever comes back to a normal state, which would mean it froze infinitely, and only for (some?) Verse devices

Here’s a video showing the issue:

  • At 0:09 we can see 2 zombies dying, they are not spawning coins VFX upon dying which they need to be (creative_device instigator would be ai_elimination_manager)
  • The level up button is supposed to always do something (creative_device instigator would be pve_rank_system)
    Here’s the code that should always display something :
loop:
                Agent := Config.FixGhostButtonButtonRef.InteractedWithEvent.Await()
                if(Player := player[Agent]):
                    PlayerRank := GetPlayerRank(Player)
                    if(PlayerRank >= Config.Rank):
                        NotificationSystem().Show(Player, LOC_LEVEL_ALREADY_UNLOCKED, notification_type.Error)
                    else if(PlayerRank = Config.Rank-1):
                        DidConsume := Config.GetRankConsumingMethod.TryConsume(Player)
                        if(DidConsume?):
                            SetPlayerRank(Player, Config.Rank)
                            # NotificationSystem().Show(Player, "Level {GetRankString(Config.Rank)} UNLOCKED!", notification_type.Success)
                        else:
                            NotificationSystem().Show(Player, LOC_NOT_ENOUGH_GOLD, notification_type.Error)
                    else:
                        NotificationSystem().Show(Player, LOC_NEED_PREVIOUS_LEVEL, notification_type.Error)

Nothing suspends inside the loop, the notification system just triggers a HUD message, it has never failed us after a year of use, SetPlayerRank() is never called either since it’s supposed to trigger a HUD message too

There’s also a chance for me just being dumb and not seeing a big mistake in both of my scripts, but I don’t often fail that hard :3

Please select what you are reporting on:

Verse

What Type of Bug are you experiencing?

Stability

Steps to Reproduce

not sure, happens randomly on our map

Expected Result

I’m really not sure what the issue is so you can pick one of those :

  • Verse crash not being reported correctly
  • ErrRuntime_ComputationLimitExceeded report lacking additional information
  • Not being able to see the error timestamp history on the creator portal (or the content service website)

Observed Result

(some?) Verse devices seem to freeze infinitely

Platform(s)

PC

Island Code

2333-8797-6447

FORT-848205 is ‘Closed’ as ‘Fixed’. The issue will be addressed in 34.10.

1 Like