Persistable weak_map data not available for ~12% of players when re-matchmaking into the same island after a completed match

Summary

~12% of returning players have no persistable weak_map data for the whole session when they matchmake into our island again after finishing a match (regular matchmaking or portal). If they matchmake again, their data loads normally, so the data is not lost.

Please select what you are reporting on:

Creative

What Type of Bug are you experiencing?

Matchmaking

Steps to Reproduce

  1. Publish an island that stores player data in a module-scoped persistable: var PlayerStatsMap : weak_map(player, player_stats_table) = map{}
  2. A player plays a full match on the island until it ends normally.
  3. From the end of that match, the player matchmakes into the same island again (regular Fortnite matchmaking or a matchmaking portal).
  4. When the player joins (PlayerAddedEvent, or GetPlayspace().GetPlayers() in OnBegin), we wait until Player.IsActive[] succeeds, checking every 0.5 seconds for up to 100 attempts.
  5. We then wait until Player.GetFortCharacter[] and FortCharacter.IsActive[] succeed, checking every 0.5 seconds for up to 100 attempts.
    (Steps 4 and 5 were included to try to ensure data was loaded and accesible when we did PlayerStatsMap[Player])
  6. We check PlayerStatsMap[Player] every 0.1 seconds for 2.0 seconds. We only read the map here and never write to it. This is the function we use (timing values written in as literals):
var PlayerStatsMap<public> : weak_map(player, player_stats_table) = map{}

GlobalGetPlayerStats<public>(InAgent : agent)<transacts><decides> : player_stats_table =
    Player := player[InAgent]
    Player.IsActive[]
    PlayerStatsMap[Player]

# Called with Seconds = 2.0 on join, and Seconds = 10.0 on every RETRY.
PollForPersistentData(Player : player, Seconds : float)<suspends> : logic =
    var Remaining : float = Seconds
    loop:
        if (not Player.IsActive[]):
            return false
        if (GlobalGetPlayerStats[Player]):
            return true
        if (Remaining <= 0.0):
            return false
        Sleep(0.1)
        set Remaining -= 0.1
  1. If no entry is found, we wait up to 15 seconds for an active fort_character and then show the player the “NO SAVED DATA FOUND” dialog
  2. If the player presses RETRY (meaning they are not a new player), we send the PlayerDataNotFound analytics event (only on the first press) and show “Looking for your save…” dialog
  3. While retrying, we call PollForPersistentData(Player, 10.0), which checks PlayerStatsMap[Player] every 0.1 seconds for 10 seconds. The player can retry up to 5 times.
  4. If the data never arrives, we do NOT write a new entry to PlayerStatsMap. We show this notice, which closes on its own after 20 seconds, and ask the player to matchmake again
  5. The player leaves and matchmakes into the island again. This time PlayerStatsMap[Player] returns their full saved data.

Expected Result

When a player who has saved data joins the island, PlayerStatsMap[Player] returns their saved player_stats_table within a few seconds of Player.IsActive[] and FortCharacter.IsActive[] succeeding, every time, no matter how they matchmade in.

Observed Result

In about 10–14% of plays (12.5% on average over 30 days, 23,229 of 185,260 plays), PlayerStatsMap[Player] has no entry for a returning player during the whole wait (PollForPersistentData(Player, 2.0), then up to 5 calls to PollForPersistentData(Player, 10.0) while the player is shown the dialog). The data is not lost: when the same player leaves and matchmakes again, PlayerStatsMap[Player] returns their saved data normally. We have not confirmed whether the data ever shows up later in the same session.

Platform(s)

All (PC, PlayStation, Xbox, Nintendo Switch, Mobile)

Island Code

8920-0084-1283

Upload an image

Additional Notes

On our published island, roughly 10–14% of players every day join a match and their persistable data (a module-scoped weak_map(player, player_stats_table)) is not available for the whole session. It happens when a player finishes a match on our island and then matchmakes into our island again, either through regular Fortnite matchmaking or through a matchmaking portal. It does not happen every time. When the affected player leaves and matchmakes again, their data loads normally, so the data still exists but is not loaded for that session.

Data from our in-game analytics, 2026-09-11 to 2026-10-10:

  • 185,260 plays
  • 23,229 sessions where the player had no persistent data and told us they are not a new player (12.5%)
  • Daily rate between 10.8% and 21.0%, usually around 11–13%
Date Day Plays PlayerDataNotFound Percent
2026-09-11 Friday 5,310 1,115 21.0%
2026-09-12 Saturday 9,771 1,209 12.4%
2026-09-13 Sunday 10,367 1,118 10.8%
2026-09-14 Monday 4,927 565 11.5%
2026-09-15 Tuesday 4,256 494 11.6%
2026-09-16 Wednesday 3,829 494 12.9%
2026-09-17 Thursday 2,654 324 12.2%
2026-09-18 Friday 4,711 626 13.3%
2026-09-19 Saturday 9,074 1,086 12.0%
2026-09-20 Sunday 10,800 1,322 12.2%
2026-09-21 Monday 5,290 629 11.9%
2026-09-22 Tuesday 4,152 525 12.6%
2026-09-23 Wednesday 4,036 559 13.9%
2026-09-24 Thursday 3,368 396 11.8%
2026-09-25 Friday 4,983 587 11.8%
2026-09-26 Saturday 8,718 1,137 13.0%
2026-09-27 Sunday 10,689 1,373 12.8%
2026-09-28 Monday 4,874 547 11.2%
2026-09-29 Tuesday 4,560 502 11.0%
2026-09-30 Wednesday 4,708 580 12.3%
2026-10-01 Thursday 3,499 402 11.5%
2026-10-02 Friday 5,428 792 14.6%
2026-10-03 Saturday 10,043 1,310 13.0%
2026-10-04 Sunday 11,398 1,400 12.3%
2026-10-05 Monday 5,309 724 13.6%
2026-10-06 Tuesday 4,618 525 11.4%
2026-10-07 Wednesday 4,438 522 11.8%
2026-10-08 Thursday 3,988 456 11.4%
2026-10-09 Friday 6,015 724 12.0%
2026-10-10 Saturday 9,447 1,186 12.6%

So today I’ve recieved many reports of player data not loading, someplayers lose their data because they marked they are new players, but for the players that didn’t selected the New Player option, their data returns not found. But when I load to an Edit Session, data loads fine, but on live and on every Private Code it doesn’t. I am stucked without my persistant data and so do other players.

FORT-1171283 has been added to our ‘To Do’ list. Someone’s been assigned this task.

We’re having the same issue in our map (8082-6613-0855). Even today we also had a spike in occurrences. Hopefully it’ll be fixed soon.