ErrRuntime_Internal when callng team settings device EndRound

Reference ID

dc580972-40f8-ff29-e63b-c4b2f81d97cc

Please select what you are reporting on:

Verse

What Type of Bug are you experiencing?

Verse

Summary

Have 3 separate errors piling up in the thousands in the content service that all seem to lead to one place:
team_settings_and_inventory?ice:(/Fortnite.com/Devices/team_settings_and_inventory_device:)EndRound

Steps to Reproduce

Check the error log of the islands

Expected Result

No errors

Observed Result

ErrRuntime_Internal
An internal runtime error occurred. There is no other information available.
Stack Trace

Verse unrecoverable error: ErrRuntime_Internal: An internal runtime error occurred. There is no other information available.

Truncated callstack follows:
team_settings_and_inventory?ice:(/Fortnite.com/Devices/team_settings_and_inventory_device:)EndRound (Unknown source) (Source: Unknown(0,0, 0,0))
winner_manager?ice:(/projects.epicgames.com/_0e74621044b49e68877dfcb2cebe3b22/winner_manager_device:)OnWinnerStopped (Unknown source) (Source: Unknown(0,0, 0,0))
winner_manager?ice:(/projects.epicgames.com/_0e74621044b49e68877dfcb2cebe3b22/winner_manager_device:)OnWinnerStopped3(:any):void (Unknown source) (Source: Unknown(0,0, 0,0))

ErrRuntime_Internal
An internal runtime error occurred. There is no other information available.
Stack Trace

Verse unrecoverable error: ErrRuntime_Internal: An internal runtime error occurred. There is no other information available.

Truncated callstack follows:
team_settings_and_inventory?ice:(/Fortnite.com/Devices/team_settings_and_inventory_device:)EndRound (Unknown source) (Source: Unknown(0,0, 0,0))
game_manager?ice:(/projects.epicgames.com/_0e74621044b49e68877dfcb2cebe3b22/game_manager_device:)OnAgentEntersStartArea(:agent) (Unknown source) (Source: Unknown(0,0, 0,0))
game_manager?ice:(/projects.epicgames.com/_0e74621044b49e68877dfcb2cebe3b22/game_manager_device:)OnAgentEntersStartArea38(:any):void (Unknown source) (Source: Unknown(0,0, 0,0))

ErrRuntime_Internal
An internal runtime error occurred. There is no other information available.
Stack Trace

Verse unrecoverable error: ErrRuntime_Internal: An internal runtime error occurred. There is no other information available.

Truncated callstack follows:
team_settings_and_inventory?ice:(/Fortnite.com/Devices/team_settings_and_inventory_device:)EndRound (Unknown source) (Source: Unknown(0,0, 0,0))
game_manager?ice:(/projects.epicgames.com/_0e74621044b49e68877dfcb2cebe3b22/game_manager_device:)OnAgentEntersStartArea(:agent) (Unknown source) (Source: Unknown(0,0, 0,0))
game_manager?ice:(/projects.epicgames.com/_0e74621044b49e68877dfcb2cebe3b22/game_manager_device:)OnAgentEntersStartArea38(:any):void (Unknown source) (Source: Unknown(0,0, 0,0))

Platform(s)

windows

Island Code

1734-8951-4401

This error also happened to me.

Verse unrecoverable error: ErrRuntime_Internal: An internal runtime error occurred. There is no other information available.

Truncated callstack follows:
team_settings_and_inventory?ice:(/Fortnite.com/Devices/team_settings_and_inventory_device:)EndRound (Unknown source) (Source: Unknown(0,0, 0,0))
colored_buddies_gamemode:(/projects.epicgames.com/_6639007046b4267f65b07dac72c64960/colored_buddies_gamemode:)RestartGame(:?RespawnPlayers:logic = ...) (Unknown source) (Source: Unknown(0,0, 0,0))
task_colored_buddies_gamemode$StartObjective(:int):Update (Unknown source) (Source: Unknown(0,0, 0,0))

I also get this error

team_settings_and_inventory?ice:(/Fortnite.com/Devices/team_settings_and_inventory_device:)EndRound (Unknown source) (Source: Unknown(0,0, 0,0))

It doesnā€™t happen 100% of the time EndRound() is called either, so not sure whatā€™s going on.

Also since last update (v30.00), it stops the game with the Verse runtime error popup, making it impossible to release the island as is.

After further investigation, it looks like if anyone leaves the match, the error will happen when ending the round.

I have tried the following scenarios on a 1v1 match:

  • Team 1 player leaving the match, Team 1 winning the round
  • Team 1 player leaving the match, Team 2 winning the round
  • Team 1 player leaving the match then rejoining, Team 1 winning the round
  • Team 1 player leaving the match then rejoining, Team 2 winning the round

In all of the above, another player was present on the server in Team 2, and the error triggered every time. I have also reproduced some of these with 2v1, with the player in the team of 2 leaving.

The error did not trigger if no one left the match during the round.

@Flak is that something the team is aware of? I hope these extra details can help tracking down the issue.

Currently thinking this related to them being the last player in the game and then leaving, which no valid players are then left to use for EndRound so it just errors, but the server is closing anyways. Not sure if this could still result in the win/loss pattern youā€™re seeing.

Definitely not the last player on the server - in the scenarios Iā€™ve provided above, there was always at least one player on the server, and the second player was leaving (and rejoining in some cases).
I have edited my previous post to highlight that, in case it wasnā€™t clear.

Check your verse code, ensure it is not trying to access or pass agent who has left as a parameter. I think the team is working on devices so that they are more resilient, but in the meantime try to subscribe to PlayerRemovedEvent and update your maps and arrays accordingly so they no longer contain invalid agents.

The EndRound function in team_settings_and_inventory_device does not take any parameter.

Lol is it possible there is no one left on that team? You should probably check before calling.

BTW I use round_settings_device to manage rounds.

Even if no-one was left on either team, Iā€™d still expect it to work, but as I mentioned earlier, it doesnā€™t matter how many people are left in either team, the error will trigger if anyone leaves.

I was originally using round_settings_device and passing an Agent to end a round, but somehow I always ended up in a ā€œDrawā€ rather than Victory/Defeat, and using the teams settings directly was actually working.
Well, until last update that is :slight_smile:

I will check tomorrow whether the error is a red herring and something happens after the round ends - and as you suggested whether a invalid player is being accessed.
I do keep players that left on the scoreboard as well, Iā€™ll have to play with that setting to see if itā€™s related.

1 Like

I too think all Fortnite devices should just do nothing if somehow agent became invalid or handle better instead of runtime error.

The status of FORT-750070 incident has been moved from ā€˜Needs Peer Reviewā€™ to ā€˜Ready for QAā€™. Resolution Reason: ā€˜Fixedā€™

More testsā€¦

  • Unticking ā€œInclude Players Who Left Game In Scoreboardā€ does not fix the issue
    image

  • There is nothing happening after the RoundEnd is called, so itā€™s not an invalid player issue

  • Tried to use the RoundSettings to call EndRound(Agent), and to my surprise the error still occurs

So by now I am able to recreate the error 100% of the time. Out of curiosity Iā€™ve been reverting to various previous check-ins, and at some point that error was not happening. It took a loooong time to pinpoint the version that caused the issue.

The culprit version only had cosmetic changes, such as moving walls, and one functional change, which was adding a barrier device to block bullets in a specific area.

So the first thing I tried was going back to the latest version again, and deleting that barrier. The error is goneā€¦ Adding another barrier made the error come back.

I donā€™t know what to tell you, I have questionsā€¦ like, is there a limit of the barrier devices you can have in the map? This was barrier #42ā€¦ is 42 really the answer to everything?

I feel like my sanity is slipping away, but at least that error is gone.

As a side note, deleting the barrier made most of my custom devices lose reference to each other, or empty data arrays they had, so I had to re-hook all that up, but again, the issue is gone at long last. :man_shrugging:

Iā€™ve noticed an issues when using the End Game Device. Not seeing any Runtime Errors, but rounds are sometimes not ending when End Game is called from Verse (passing Agent) and then also when a backup End Game Device is triggered from a Triggered Device. The issue appears to carry between all rounds in a session that experiences this issue.

The only thing Iā€™ve been able to point at is:

  • Players leaving the game.
  • A current Matchmaking bug that doesnā€™t allow Matchmaking to be disabled.

Iā€™ve been unable to recreate the effect with 100% accuracy to confidently pinpoint the issue.

1 Like

I stopped using built in rounds personally. If I need rounds I just handle everything myself. Itā€™s really a shame that so much of epics built in functionality is so buggy, I remember when I started how nice it was to have devices and game modes, but now it actually makes development more difficult.

1 Like

We also have this issue, doesnā€™t matter what way we end the round, via team settings or end round device, checking our player also doesnt work.

If anyone knows of a workaround let us besides creating our round system let us know.

A few key things to mention from our map.

We move players from one team to another via AddToTeam
Almost always breaks after a player leaving a map and the round ending.

1 Like

Have you guys tried using the Round Manager to end the round instead of the Team Settings & Inventory?

The other things Iā€™d try is using a Round Settings & Inventory Device thatā€™s team is set to Any so no specific team is sent thru the end round device. As well as hooking up a trigger to either the round manager or ts&i devices and then triggering that and letting the device association do the End Round event.

If those fail then you probably need to just use conditions that are present within the round settings device. Im not sure there are any other options outside of these.

Yeah we tried we various devices but with no luck.
We also tried triggering with a normal trigger as you mentioned.
My other assumption is that player eliminated event was being executed outside the game thread, so we set a variable and trigger end game from elsewhere.

My assumption is that when a player leaves there is a dangling null pointer somewhere in the code for team collections, crashing the device when triggering an end game.

We will do more tests tomorrow but we also noticed that the crash seems to allow the game to keep running so we will just do some housekeeping on each round start to ensure no issues. If the issue continues to degrade the round we will have to just do our own round system like you mentioned.

1 Like

Not sure if this insight adds any value to you but I think that there may be something going on with teams and end round conditions that is implied by this solution.

If you have last man standing in order to handle join in progress you have to set it to spectator. I did some tests before and the way that spectator spawn on join works is the players get spawned and instantly eliminated.
I am wondering if your join in progress setting may have anything to do with it. (you really never know when you let epic handle this kind of stuff, and is precisely why I ended up just doing a full replacement, too many inferred dependencies and workarounds involved)
(no idea if this will be useful but just figured Iā€™d check since you seem to be out of options)