After looking into this some more, I was able to get rid of the EOS_InvalidUser
error when creating a lobby by manually adding the host to the session prior to calling CreateSession()
, like so:
IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld());
IOnlineSessionPtr Session = Subsystem->GetSessionInterface();
IOnlineIdentityPtr Identity = Subsystem->GetIdentityInterface();
TSharedRef<FOnlineSessionSettings> SessionSettings = MakeShared<FOnlineSessionSettings>();
// all the usual session settings...
SessionSettings->MemberSettings.FindOrAdd(Identity->GetUniquePlayerId(0).ToSharedRef());
Session->CreateSession(0, NAME_GameSession, *SessionSettings)
So it feels like EOS OSS may be trying to access the player too soon when the session is created.
However, I’m still facing the same EOS_InvalidUser
error when a client joins a session, as I haven’t yet been able to add the joining client to the session’s settings it is trying to join prior to joining.
The error doesn’t seem to affect gameplay, as both players can see each other, their movements replicate, etc, however, I’d still like to fix this error.