Unable to accept invite due to error "is not a valid Product User ID"

Having followed the tutorial of getting an online game set-up through the EOS subsystem (Here), I am now attempting a flow whereby players launch the game and auto-create a lobby with 1 open slot. This works great on launch, as both my game instances on separate accounts log in and have access to the overlay - where they can see they are each in a lobby with 1 open slot. These lobbies are also visible on the backend

My issue arises when attempting to send an invite to another player. Both instances show the error :

LogEOSSDK: Warning: LogEOSAuth: Unable to get integrated platform id from Epic account id - external account type unset

However the invite appears to pass through the backend correctly and a notification is shown on the invited player’s overlay.

When attempting to accept the invite, the accepting player receives the errors:

LogEOSSDK: Warning: LogEOSAuth: Unable to get integrated platform id from Epic account id - external account type unsetLogEOSSDK: Error: LogEOSConnect: Invalid parameter EOS_Connect_QueryProductUserIdMappingsOptions.ProductUserIds reason: invalid ProductUserId at index 0

And upon attempting to accept the invitation a second time:

LogEOSSDK: Warning: LogEOSLobby: Lobby membership count inconsistencyLogEOSSDK: Error: LogEOSConnect: Invalid parameter EOS_Connect_QueryProductUserIdMappingsOptions.ProductUserIds reason: invalid ProductUserId at index 0

I have also seen the errors below, however at the time of writing I am unable to reproduce these errors

LogEOSSDK: Error: LogEOSLobby: Invalid parameter EOS_Lobby_CopyLobbyDetailsHandleOptions.LocalUserId reason: is not a valid Product User ID, Result: EOS_InvalidUserLogOnlineSession: Warning: EOS: [FOnlineSessionEOS::OnLobbyUpdateReceived] EOS_Lobby_CopyLobbyDetailsHandle not successful. Finished with EOS_EResult EOS_InvalidUser

Both users are logged in with the dev auth login, connected to accounts that are authorized on the organization’s backend., These accounts are also linked to steam accounts with the product on their accounts.

I’ve searched online for similar errors, and found this developer support post. But this did not resolve my issue - but this wasn’t surprising as I believed my issue to differ from the OP’s problem.

For context I am in the middle of converting to EOS after having used an external platform manager with which our studio has since discontinued our contract. Previously our game was available on steam, with this platform manager handling account linking / invites / sessions / lobbies/ etc. In converting to EOS we are hoping to maintain our previous game flow as closely as possible.

Any insight would be greatly welcome, as the google results for this specific error are sparse.

Hi, did you manage to resolve this?

I’m actually incurring the same error, but when trying to join a session… However, I did notice that my server name has no value… Super strange. I’m not sure what to do with it from here.

Below are some logs. I understand what they’re saying, I just have no idea on where to look to fix it.

>    Function /Game/MBLS/Widgets/MainMenu/WB_HostGameMenu.WB_HostGameMenu_C:BndEvt__WB_HostGameMenu_HostLobby_Btn_K2Node_ComponentBoundEvent_1_OnClicked__DelegateSignature
>     Function /Game/MBLS/Widgets/MainMenu/WB_HostGameMenu.WB_HostGameMenu_C:ExecuteUbergraph_WB_HostGameMenu
> LogNet: UNetDriver::TickDispatch: Very long time between ticks. DeltaTime: 0.01, Realtime: 35.44. IpNetDriver_27
> LogNet: UNetDriver::TickDispatch: Very long time between ticks. DeltaTime: 0.01, Realtime: 35.44. IpNetDriver_28
> LogNet: UNetDriver::TickDispatch: Very long time between ticks. DeltaTime: 0.01, Realtime: 35.44. IpNetDriver_29
> LogEOSSDK: LogEOSLobby: Created lobby socket. LocalUserId=[000...04f] WebSocket=[00000840486ACC10]
> LogEOSSDK: LogEOSLobby: Opening Lobby Socket To: "wss://api.epicgames.dev/lobby/v1/fa57a1df38744802a01193eecfae3f3a/lobbies/connect"
> LogNet: UNetDriver::TickDispatch: Very long time between ticks. DeltaTime: 35.45, Realtime: 0.04. IpNetDriver_27
> LogNet: UNetDriver::TickDispatch: Very long time between ticks. DeltaTime: 35.45, Realtime: 0.04. IpNetDriver_28
> LogNet: UNetDriver::TickDispatch: Very long time between ticks. DeltaTime: 35.45, Realtime: 0.04. IpNetDriver_29
> LogEOSSDK: LogEOSLobby: Connection Established
> LogEOSSDK: LogEOSLobby: Created lobby has an associated RTC Room. LobbyId=[6d06049970f14b0d95ceb46f0ab6e16e] LocalUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCRoom Notification 'EOS_RTC_DisconnectedCallbackInfo' is added. NotificationId=[1216] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateSending. AudioStatus=[AudioEnabled] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateInput. DeviceId=[{default_device}] PlatformAec=[Enabled] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateInput Completion. Result=[EOS_Success] DeviceId=[{default_device}] PlatformAec=[Enabled] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateInputVolume. Volume=[50.000000] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateOutput. DeviceId=[{default_device}] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateOutput Completion. Result=[EOS_Success] DeviceId=[{default_device}] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateOutputVolume. Volume=[50.000000] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCRoom JoinRoom. MsUrl=[wss://signaling-service-prod.use2.live.rtcp.on.epicgames.com/api/v1/websocket_route?ms=wss://10.1.187.181:8443/26616d31-8024-41fd-bca4-499fca4b8f8a] LocalProductUserId=[000...04f] RoomName=[conf+-678401026] Aec=[Enabled] Ns=[Enabled] Agc=[Enabled] Dtx=[Enabled]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateInput. DeviceId=[{default_device}] PlatformAec=[Disabled] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateInput Completion. Result=[EOS_Success] DeviceId=[{default_device}] PlatformAec=[Disabled] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateInputVolume. Volume=[50.000000] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateOutput. DeviceId=[{default_device}] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateOutput Completion. Result=[EOS_Success] DeviceId=[{default_device}] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateOutputVolume. Volume=[50.000000] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateInput. DeviceId=[{default_device}] PlatformAec=[Disabled] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateInput Completion. Result=[EOS_Success] DeviceId=[{default_device}] PlatformAec=[Disabled] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateInputVolume. Volume=[50.000000] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSVoiceChat: [0000084056EDDE10] BindChannelCallbacks ChannelName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCRoom Notification 'EOS_RTC_ParticipantStatusChangedCallbackInfo' is added. NotificationId=[1219] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCRoom Notification 'EOS_RTCAudio_ParticipantUpdatedCallbackInfo' is added. NotificationId=[1220] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCRoom Notification 'EOS_RTCAudio_AudioBeforeSendCallbackInfo' is added. NotificationId=[1221] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCRoom Notification 'EOS_RTCAudio_AudioBeforeRenderCallbackInfo' is added. NotificationId=[1222] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCRoom Notification 'EOS_RTCAudio_AudioInputStateCallbackInfo' is added. NotificationId=[1223] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateSending. AudioStatus=[AudioEnabled] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSVoiceChat: [0000084056EDDE10] OnUpdateSending ChannelName=[conf+-678401026] Success
> LogEOSSDK: LogEOSRTC: RTCAudio UpdateReceiving. Target=[Global] State=[Enabled] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSVoiceChat: [0000084056EDDE10] OnUpdateReceiving ChannelName=[conf+-678401026] PlayerName=[] Success
> LogOnlineSession: Warning: EOS: [FOnlineSessionEOS::SetLobbyMemberAttributes] Lobby Member with UniqueNetId [47c4f6bc6e444dafae60a25642d1c26d|00024bbb65b043099f47eb145586204f] not found in Lobby Session with SessionId [6d06049970f14b0d95ceb46f0ab6e16e]
> LogEOSSDK: LogEOSPresence: Updating Presence to Online. LocalUserId=[47c...26d] RichText=[]
> LogEOSSDK: Error: LogEOSLobby: Invalid parameter EOS_Lobby_CopyLobbyDetailsHandleOptions.LocalUserId reason: is not a valid Product User ID, Result: EOS_InvalidUser
> LogOnlineSession: Warning: EOS: [FOnlineSessionEOS::OnLobbyUpdateReceived] EOS_Lobby_CopyLobbyDetailsHandle not successful. Finished with EOS_EResult EOS_InvalidUser
> LogEOSSDK: Warning: LogEOSLobby: Lobby backend has attributes missing from client
> LogOnlineSession: Display: OSS: Session creation completed. Automatic start is turned on, starting session now.
> LogEOSSDK: LogEOSPresence: Skipping updating Presence to Online. Requested Presence is the same as the current one.
> LogBlueprintDebug: Warning: Hit breakpoint on node 'K2Node_AsyncAction', from offset 0
> LogBlueprintDebug: Script call stack:
>     Function /Game/MBLS/Widgets/MainMenu/WB_HostGameMenu.WB_HostGameMenu_C:OnSuccess_E36196C74BCDEDB93A0FE397475829A3
> LogEOSSDK: LogEOSRTC: LibRTCMediaService: Control channel connected
> LogEOSSDK: LogEOSRTC: LibRTCRTCP: PeerConnection has been created
> LogEOSSDK: LogEOSRTC: LibRTCCore: Starting playout is successful
> LogEOSSDK: LogEOSRTC: LibRTCCore: Starting recording is successful
> LogEOSSDK: LogEOSRTC: LibRTCCore: Connection to the conference succeeded.
> LogEOSVoiceChat: [0000084056EDDE10] OnLobbyChannelConnectionChanged LobbyId=[6d06049970f14b0d95ceb46f0ab6e16e] bIsConnected=[true] Reason=[Success]
> LogEOSSDK: LogEOSRTC: RTCRoom Conference signaling connection has been established. LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: RTCRoom Conference reconnection has been started. Result=[ErrorCode=[3001] ErrorDescription=["Reloading a rtcp connection"]] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: Error: LogEOSRTC: LibRTCMediaService: Connection error: The connection was interrupted due to rtcp reloading
> LogEOSSDK: LogEOSRTC: LibRTCMediaService: Reconnect schedule after 1s iteration 1
> LogNet: Browse: /Game/MBLS/Maps/Lobby_Level?listen
> LogLoad: LoadMap: /Game/MBLS/Maps/Lobby_Level?listen
> LogWorld: BeginTearingDown for /Game/MBLS/Maps/UEDPIE_1_MainMenu_Level
> LogNet: World NetDriver shutdown IpNetDriver_28 [GameNetDriver]
> LogNet: DestroyNamedNetDriver IpNetDriver_28 [GameNetDriver]
> LogNet: UNetConnection::Close: [UNetConnection] RemoteAddr: 127.0.0.1:17777, Name: IpConnection_19, Driver: GameNetDriver IpNetDriver_28, IsServer: NO, PC: BP_PC_MainMenu_C_0, Owner: BP_PC_MainMenu_C_0, UniqueId: INVALID, Channels: 10, Time: 2024.04.18-01.07.31
> LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:17777, Name: IpConnection_19, Driver: GameNetDriver IpNetDriver_28, IsServer: NO, PC: BP_PC_MainMenu_C_0, Owner: BP_PC_MainMenu_C_0, UniqueId: INVALID
> LogExit: GameNetDriver IpNetDriver_28 shut down
> LogWorld: UWorld::CleanupWorld for MainMenu_Level, bSessionEnded=true, bCleanupResources=true
> LogSlate: InvalidateAllWidgets triggered.  All widgets were invalidated
> LogAudio: Display: Audio Device unregistered from world 'None'.
> LogUObjectHash: Compacting FUObjectHashTables data took   1.14ms
> LogAudio: Display: Audio Device (ID: 18) registered with world 'Lobby_Level'.
> LogWorldSubsystemInput: UEnhancedInputDeveloperSettings::bEnableWorldSubsystem is false, the world subsystem will not be created!
> LogChaos: FPhysicsSolverBase::AsyncDt:-1.000000
> LogAIModule: Creating AISystem for world Lobby_Level
> LogPlayLevel: PIE: World Init took: (0.000860s)
> LogLoad: Game class is 'BP_GM_Lobby_C'
> LogNet: ReplicationDriverClass is null! Not using ReplicationDriver.
> LogNetCore: DDoS detection status: detection enabled: 0 analytics enabled: 0
> LogInit: WinSock: Socket queue. Rx: 131072 (config 131072) Tx: 131072 (config 131072)
> LogNet: Created socket for bind address: 0.0.0.0:7777
> PacketHandlerLog: Loaded PacketHandler component: Engine.EngineHandlerComponentFactory (StatelessConnectHandlerComponent)
> LogNet: GameNetDriver IpNetDriver_30 IpNetDriver listening on port 7777
> LogWorld: Bringing World /Game/MBLS/Maps/UEDPIE_1_Lobby_Level.Lobby_Level up for play (max tick rate 0) at 2024.04.17-20.07.31
> LogWorld: Bringing up level for play took: 0.001274
> LogGameMode: Display: Match State Changed from EnteringMap to WaitingToStart
> LogGameState: Match State Changed from EnteringMap to WaitingToStart
> LogGameMode: Display: Match State Changed from WaitingToStart to InProgress
> LogViewport: Display: Viewport MouseLockMode Changed, DoNotLock -> LockOnCapture
> LogViewport: Display: Viewport MouseCaptureMode Changed, NoCapture -> CapturePermanently
> LogSlate: Updating window title bar state: overlay mode, drag disabled, window buttons hidden, title bar hidden
> LogGameState: Match State Changed from WaitingToStart to InProgress
> LogLoad: Took 0.029676 seconds to LoadMap(/Game/MBLS/Maps/Lobby_Level)
> LogNet: UChannel::ReceivedSequencedBunch: Bunch.bClose == true. ChIndex == 0. Calling ConditionalCleanUp.
> LogNet: UChannel::CleanUp: ChIndex == 0. Closing connection. [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:49841, Name: IpConnection_21, Driver: GameNetDriver IpNetDriver_27, IsServer: YES, PC: BP_PC_MainMenu_C_0, Owner: BP_PC_MainMenu_C_0, UniqueId: INVALID
> LogNet: UNetConnection::Close: [UNetConnection] RemoteAddr: 127.0.0.1:49841, Name: IpConnection_21, Driver: GameNetDriver IpNetDriver_27, IsServer: YES, PC: BP_PC_MainMenu_C_0, Owner: BP_PC_MainMenu_C_0, UniqueId: INVALID, Channels: 10, Time: 2024.04.18-01.07.31
> LogNet: UNetConnection::SendCloseReason:
> LogNet:  - Result=ControlChannelClose, ErrorContext="ControlChannelClose"
> LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: [UChannel] ChIndex: 0, Closing: 0 [UNetConnection] RemoteAddr: 127.0.0.1:49841, Name: IpConnection_21, Driver: GameNetDriver IpNetDriver_27, IsServer: YES, PC: BP_PC_MainMenu_C_0, Owner: BP_PC_MainMenu_C_0, UniqueId: INVALID
> LogEOSSDK: LogEOSRTC: LibRTCMediaService: Control channel connected
> LogEOSSDK: LogEOSRTC: RTCRoom Conference signaling connection has been established. LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: LibRTCRTCP: PeerConnection has been created
> LogEOSSDK: LogEOSRTC: LibRTCCore: Starting playout is successful
> LogEOSSDK: LogEOSRTC: LibRTCCore: Starting recording is successful
> LogEOSSDK: LogEOSRTC: RTCRoom Conference reconnection has been finished. Result=[ErrorCode=[0] ErrorDescription=["Successful result"]] LocalProductUserId=[000...04f] RoomName=[conf+-678401026]
> LogEOSSDK: LogEOSRTC: LibRTCMediaService: Reconnect successful
> LogEOSSDK: LogEOSAuth: UpdateUserAuthToken: User ClientId: xyz...YEm AccountId: fa3...f40 Access[Expires: 2024.04.18-03.08.19 Remaining: 7200.57] Refresh[Expires: 2024-04-18T09:08:19.576Z Remaining: 28800.58] State: Valid
> LogEOSSDK: LogEOSAuth: UserAuthGenerated: Received FUserAuthToken
> LogEOSSDK: LogEOSAuth: UserAuthGenerated: Login complete: EOS_Success
> LogEOSSDK: LogEOSMessaging: Attempting connection to Stomp. LocalUserId=[000...df5] Url=[<Redacted>]
> LogEOSSDK: LogEOSP2P: Requesting new TURN relay credentials for 000...df5.
> LogEOSSDK: LogEOSPresence: Updating Presence to Online. LocalUserId=[fa3...f40] RichText=[]
> LogEOSSDK: LogEOSMessaging: Successfully connected to Stomp. LocalUserId=[000...df5]
> LogEOSSDK: LogEOSPresence: Received presence update. LocalUserId=[47c...26d] PresenceUserId=[fa3...f40] RichText=[]
> LogEOSSDK: LogEOSPresence: Received presence update. LocalUserId=[fa3...f40] PresenceUserId=[47c...26d] RichText=[]
> LogEOSSDK: Warning: LogEOSLobby: Lobby membership count inconsistency
> LogOnlineSession: EOS: [FOnlineSessionEOS::StartLobbySearch] LobbySearch_Find was successful.
> LogEOSSDK: Error: LogEOSConnect: Invalid parameter EOS_Connect_QueryProductUserIdMappingsOptions.ProductUserIds reason: invalid ProductUserId at index 0
> LogScript: Script Msg: Found a session. Ping is 108
> LogEOSSDK: Warning: LogEOSLobby: Lobby membership count inconsistency
> LogOnlineSession: EOS: [FOnlineSessionEOS::StartLobbySearch] LobbySearch_Find was successful.
> LogEOSSDK: Error: LogEOSConnect: Invalid parameter EOS_Connect_QueryProductUserIdMappingsOptions.ProductUserIds reason: invalid ProductUserId at index 0
> LogScript: Script Msg: Found a session. Ping is 117
> LogBlueprintDebug: Warning: Hit breakpoint on node 'K2Node_AsyncAction', from offset 567

Any help is greatly appreciated.