weak_map OR Playspace Player broken (invalid key)

Reference ID

3d5d22c5-4807-f727-748a-828b8055fe40

Please select what you are reporting on:

Verse

What Type of Bug are you experiencing?

Verse

Summary

Getting Runtime errors for “Invalid key used to access persistent var weak_map

Report ID: 8C042E2873F049E98DCF8BB078659352

Steps to Reproduce

OnBegin-> Load persistent data with a Player

STACK TRACE:

Verse unrecoverable error: ErrRuntime_WeakMapInvalidKey: Invalid key used to access persistent `var` `weak_map`.

Truncated callstack follows:
player?a_manager:(/projects.epicgames.com/_ac96613d49629c8c4ab549953320cf9a/player_data_manager:)LoadPlayerData (Unknown source) (Source: Unknown(0,0, 0,0))
player_manager:(/projects.epicgames.com/_ac96613d49629c8c4ab549953320cf9a/player_manager:)AddPlayer(:player,:?ForceAdd:logic = ...) (Unknown source) (Source: Unknown(0,0, 0,0))
task_player_manager$OnBegin:Update (Unknown source) (Source: Unknown(0,0, 0,0))

CODE:

AddPlayer(Player : player, ?ForceAdd : logic = false):?round_player=
        if (not RoundPlayers[Player] or ForceAdd?):
            PlayerDataManager := player_data_manager{Player := Player}
            PlayerDataManager.LoadPlayerData()

CRASHES HERE:

var <private>Data<public> : player_save_data = player_save_data{}

    LoadPlayerData():void=
        if (not SavedPlayerData[Player]):
            if (set SavedPlayerData[Player] = player_save_data{}) {}  
        set Data = SavedPlayerData[Player] or player_save_data{}

ANOTHER RUNTIME LOG:

Verse unrecoverable error: ErrRuntime_WeakMapInvalidKey: Invalid key used to access persistent `var` `weak_map`.

Truncated callstack follows:
player?a_manager:(/projects.epicgames.com/_ac96613d49629c8c4ab549953320cf9a/player_data_manager:)SavePlayerData(:player_save_data) (Unknown source) (Source: Unknown(0,0, 0,0))
player?a_manager:(/projects.epicgames.com/_ac96613d49629c8c4ab549953320cf9a/player_data_manager:)AddScore(:int) (Unknown source) (Source: Unknown(0,0, 0,0))
round_player:(/projects.epicgames.com/_ac96613d49629c8c4ab549953320cf9a/round_player:)OnWonRound (Unknown source) (Source: Unknown(0,0, 0,0))
round_manager:(/projects.epicgames.com/_ac96613d49629c8c4ab549953320cf9a/round_manager:)OnPlayerWonRound(:round_player) (Unknown source) (Source: Unknown(0,0, 0,0))
task_round_manager$StartPostRound:Update (Unknown source) (Source: Unknown(0,0, 0,0))
task_round_manager$StartRoundLoop:Update (Unknown source) (Source: Unknown(0,0, 0,0))

For me it worked to simply do FortCharacter.IsActivate before ever accessing SavedPlayerData[Player].

1 Like

The status of FORT-734068 incident has been moved from ‘Needs Triage’ to ‘Closed’. Resolution Reason: ‘Fixed’

You are correct, this is the way.