While the OnLobbyMemberLeft event does seem to be fired correctly, the remote member will still be in the lobby's "Members" map, and its data can still be found in FLobbyClientData::MemberDataStorage.
This looks to be due to a typo in FLobbyClientData::CommitClientChanges, as when iterating through LeavingRemoteMembers, "RemoveMember" is called on LeavingMember rather than LeavingRemoteMember:
for (TSharedRef<FLobbyMemberInternal>& LeavingRemoteMember : LeavingRemoteMembers)
{
RemoveMember(LeavingMember);
Params.LobbyEvents->OnLobbyMemberLeft.Broadcast(FLobbyMemberLeft{ InternalPublicData, LeavingRemoteMember, ELobbyMemberLeaveReason::Left });
}
Using FLobbyClientData::CommitClientChanges, have the local user leave the lobby.
Observe the local member is removed as expected, but while remote members will have the OnLobbyMemberLeft event fired for them, they are not actually removed.
(This can be observed when running the "System.Engine.Online.ClientLobbyDataTest" automation test, from the Online Services Common plugin.)
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-354042 in the post.
| 0 |
| Component | UE - Online |
|---|---|
| Affects Versions | 5.8 |
| Created | Nov 17, 2025 |
|---|---|
| Updated | Nov 20, 2025 |