Summary
Loading a session is taking a long time (10-15mins) and is very frequently failing with a matchmaking error. When it fails, the error is presented sometimes within UEFN and usually within the Fortnite client.
Error from UEFN:
Failed to find a server through matchmaking: Error: match.session_unavailable.402
Your backend is: Fortnite
Your Build is: ++Fornite+Release-36.20-CL-44118662
Region: NAW
BuildIdOverride is: 43385645
Please select what you are reporting on:
Unreal Editor for Fortnite
What Type of Bug are you experiencing?
Stability
Steps to Reproduce
Launch Session
Expected Result
Session loads successfully and in a reasonable amount of time
Observed Result
Session takes a long time to load and often fails with a matchmaking error.
Platform(s)
PC
Island Code
Unreleased
Additional Notes
Seems to be unique to a specific island. This island is relatively large, has a lot of custom assets, and is using scene graph. We enabled scene graph on this island last night and it was loading fine, and then after the new patch this morning we have been running into this issue.
I was able to find the Fortnite logs.
FortniteGame.log (2.4 MB)
[2025.07.22-20.02.46:770][181]LogNet: Error: UEngine::BroadcastNetworkFailure: FailureType = ConnectionTimeout, ErrorString = UNetConnection::Tick: Connection TIMED OUT. Closing connection.. Elapsed: 60.02, Real: 60.02, Good: 60.02, DriverTime: 60.05, Threshold: 60.00, [UNetConnection] RemoteAddr: 4.155.27.146:15016, Name: IpConnection_2147482646, Driver: Name:IpNetDriver_2147482646 Def:BeaconNetDriver IpNetDriver_2147482646, IsServer: NO, PC: NULL, Owner: NULL, UniqueId: MCP:006c30d95e9d426ba48a9a3995128e03, Driver = Name:IpNetDriver_2147482646 Def:BeaconNetDriver IpNetDriver_2147482646
[2025.07.22-20.02.46:770][181]LogBeacon: Verbose: NetworkFailure FortPartyBeaconClient_2147482646: ConnectionTimeout
[2025.07.22-20.02.46:770][181]LogBeacon: Verbose: Client beacon (FortPartyBeaconClient_2147482646) connection failure, handling connection timeout.
[2025.07.22-20.02.46:770][181]LogParty: Verbose: Host connection failed for reservation beacon [FortPartyBeaconClient_2147482646], session id [afd1b8acff2441079013f25a5a33aefc]
[2025.07.22-20.02.46:770][181]LogParty: Verbose: Party reservation beacon cleanup while in state Invalid, pending approvals: false
[2025.07.22-20.02.46:770][181]LogBeacon: Verbose: Destroying beacon FortPartyBeaconClient_2147482646, netdriver Name:IpNetDriver_2147482646 Def:BeaconNetDriver IpNetDriver_2147482646
[2025.07.22-20.02.46:770][181]LogBeacon: OnlineBeacon FortPartyBeaconClient_2147482646 requesting net driver destruction: Name:IpNetDriver_2147482646 Def:BeaconNetDriver IpNetDriver_2147482646
[2025.07.22-20.02.46:770][181]LogNet: SetPendingDestruction: 1 on Name:IpNetDriver_2147482646 Def:BeaconNetDriver IpNetDriver_2147482646)
[2025.07.22-20.02.46:770][181]MatchmakingLog: Error: [31ba] Failed to connect to reservation beacon due to CustomReason17 (ReservedSessionId afd1b8acff2441079013f25a5a33aefc)
[2025.07.22-20.02.46:772][181]MatchmakingLog: [2d14]
Matchmaking Flow Summary:
UEFN Session - 1m 1s 417ms
[Reserve Position Within Existing Session] - Failed Failed to connect to reservation beacon due to CustomReason17 (ReservedSessionId afd1b8acff2441079013f25a5a33aefc)
Parameters:
Island:
MatchmakingGroup:
NanoStormy (Local) - Ready
Metadata:
LinkId [Mnemonic=[playlist_vk_edit] Version=[latest]]
WorldId [World [None] WorldName [None] WorldOwnerId [INVALID] IsJoinable [Unjoinable]]
ProductModes [None]
SessionId [Session Id [afd1b8acff2441079013f25a5a33aefc] Join Info [IslandJoinability [EditSession] SessionKey [None]]]
Privacy [NoFill]
Region [NAW]
MatchmakingId [D5D07B5D487CB63A6B35D789E0A7EF4E]
UnrankedSet [Invalid],
UnrankedIslands [Mnemonic=[playlist_vk_edit] Version=[95]],
UnrankedFallback [Invalid],
RankedSet [Invalid],
RankedIslands [Empty],
RankedFallback [Invalid],
bGracefullyUpgraded [False],
PlaylistName [Playlist_VK_Edit]
Party Leader (Local): NanoStormy
Steps:
Matchmaking Begin - Immediate - Success:
Hidden Delay - Immediate - Success:
No member uses the 'Matchmaking Delay' setting, continuing...
Refresh DAD - 171ms - Success:
No non local players to wait for, final playlist version 1
Refresh MCP Profiles - 244ms - Success:
Validity Checks - Immediate - Success:
Preload Athena - 18ms - Success:
Starting athena preload
Athena preload completed successfully
QosUpdate - 106ms - Success:
Anticheat - 253ms - Success:
Keychain Update - Immediate - Success:
Install Game Features - Immediate - Success:
Clear Caches - Immediate - Success:
Clean Up Old Sessions - Immediate - Success:
No Session Found When Cleaning Up Old Sessions
Clean Up Old Console Sessions - 1ms - Success:
Not on Console So No Need To Clean Up Old Conslole Sessions
Request Reservation - Immediate - Success:
Joining existing session. SessionId [SessionId: afd1b8acff2441079013f25a5a33aefc]
Request Moderator Permissions - 203ms - Success:
Wait For World Session - Immediate - Success:
No world set
Find World Session - Immediate - Success:
No world set
Request World Token - Immediate - Success:
No world token required
Call Matchmaking Service - Immediate - Success:
Joinable session so no need to request a session.
Find Session - 196ms - Success:
Succesfully Found Session [Id: afd1b8acff2441079013f25a5a33aefc]. Local user number: 0. Ping: 9999ms
Query Session Encryption Key - 100ms - Success:
Querying encryption key for NanoStormy (Primary player) with Id: MCP:006c30d95e9d426ba48a9a3995128e03
Query User Session ID Tokens - 100ms - Success:
Reserve Position Within Existing Session - 1m 25ms - Failed:
Proceeding with reservation for EJoinInProgressRole::Host.
Failed to connect to reservation beacon due to CustomReason17 (ReservedSessionId afd1b8acff2441079013f25a5a33aefc)
Refresh Auth Tokens - Immediate - NotExecuted:
Join Session - Immediate - NotExecuted:
Download Content - Immediate - NotExecuted:
Wait For Server Initialization - Immediate - NotExecuted:
Wait For Non Local Party Members Before Travel - Immediate - NotExecuted:
Wait For Travel Animation To Complete - Immediate - NotExecuted:
Loading Screen - Immediate - NotExecuted:
Travel To Session - Immediate - NotExecuted:
Further testing has revealed that a particular scene graph component of our own was causing the game to fail to load. Removing this component allows the game to load successfully. I’ll update the thread title to reflect this discovery.
Below is the problematic component. Unfortunately, this relies on some existing libraries we have that I won’t be able to share. (Epic) Please feel free to reach out if you need access to these, and I’ll be happy to share them privately.
using { /Verse.org }
using { /Verse.org/Native }
using { /Verse.org/SceneGraph }
using { /Verse.org/Simulation }
using { /Fortnite.com/Devices }
using { /Fortnite.com/Game }
using { /Verse.org/SpatialMath }
using { /Fortnite.com/Playspaces }
using { Snowfall.Devices }
using { Snowfall.Util }
using { Snowfall.Classes }
purchaseable_component<public> := class<final_super>(interactable_component):
Logger<protected> : snowfall_logger = snowfall_logger { LogName := "purchaseable_component", LogLevel := snowfall_log_level.Info }
@editable
CoinCost : int = 1000
var AgentInteractMessage : [agent]message = map{}
OnBeginSimulation<override>():void=
(super:)OnBeginSimulation()
Logger.LogInfo("OnBeginSimulation")
if (Transform := Entity.GetComponent[transform_component]):
Logger.LogInfo("Transform: {Transform.LocalTransform.Translation}")
if:
FortRoundManager := Entity.GetFortRoundManager[]
then:
FortRoundManager.SubscribeRoundStarted(OnRoundStarted)
OnRoundStarted():void=
Logger.LogInfo("OnRoundStarted")
Global().EventBus.Subscribe(OnEvent)
if (Playspace := Entity.GetPlayspaceForEntity[]):
for (Player : Playspace.GetPlayers()):
Message := "{CoinCost} Purchase".ToMessage()
logic { set AgentInteractMessage[Player] = Message }
OnEvent(MaybeAgent: ?agent, Payload: payload):void=
Logger.LogInfo("OnEvent")
InteractMessage<override>(Agent:agent)<reads><decides> : message=
if (AgentMessage := AgentInteractMessage[Agent]):
return AgentMessage
else:
return EmptyMessage
1 Like
Removing just these lines seemed to make the component work and allowed me to load the session.
if (Transform := Entity.GetComponent[transform_component]):
Logger.LogInfo("Transform: {Transform.LocalTransform.Translation}")
If I get some time I’ll boot up a clean island and add this into a component to see if we can get a minimum reproducible island.