Steam Client Crashes When Joining EOS Voice Chat with Epic Games Store Client

We’re using the EOSVoiceChat plugin in Unreal Engine 5.5.4, and our game is currently in Early Access on both Steam and the Epic Games Store.

We’re on the latest EOS SDK, and for Steam we’re only using EOS Connect (not EOS Link).

Voice chat rooms are created using Lobby Sessions with the “Enable Voice Chat if Available” option enabled.

  • Steam-to-Steam voice chat works fine.

  • Epic-to-Epic voice chat also works fine.

  • However, if an Epic Games Store client creates a voice chat room and a Steam client tries to join, the Steam client crashes.

  • Similarly, if a Steam client creates a voice chat room and an Epic Games Store client joins, the Steam client crashes as well.

Has anyone else experienced this issue, or found a workaround? Any help would be greatly appreciated.

Here’s log before crash:

[226]LogEOSVoiceChat: [0000019A0785C9B0] OnChannelParticipantJoined ChannelName=[conf+1894635923] PlayerName=[00021f6cb618427baa6ec1c45fe9e4e8]
[226]LogEOSSDK: LogEOSRTC: RTCAudio UpdateReceiving. Target=[000…4e8] State=[Enabled] LocalProductUserId=[000…afc] RoomName=[conf+1894635923]
[226]LogEOSVoiceChat: [0000019A0785C9B0] OnUpdateReceiving ChannelName=[conf+1894635923] PlayerName=[00021f6cb618427baa6ec1c45fe9e4e8] Success
[226]LogEOSSDK: LogEOSRTC: RTCAudio UpdatedParticipantState ParticipantId=[000…4e8] subscribed=[No] volume=[50.000000]
[226]LogEOSVoiceChat: [0000019A0785C9B0] OnUpdateParticipantVolume ChannelName=[conf+1894635923] PlayerName=[00021f6cb618427baa6ec1c45fe9e4e8] Success
[226]LogEOSSDK: LogEOSRTC: RTCRoom BlockParticipant. ParticipantId=[000…4e8] State=[Unblocked] LocalProductUserId=[000…afc] RoomName=[conf+1894635923]
[226]LogEOSSDK: LogEOSRTC: RTCRoom Participant block according to block list status and client explicit block. Result=[EOS_Success] ParticipantId=[000…4e8] InBlockList=[true] ExplicitBlock=[false] Applied=[blocked]
[226]LogEOSSDK: LogEOSRTC: RTCRoom BlockParticipantPrivate. ParticipantId=[000…4e8] State=[Blocked] LocalProductUserId=[000…afc] RoomName=[conf+1894635923]
[226]LogEOSSDK: LogEOSRTC: RTCAudio UpdatedParticipantState ParticipantId=[000…4e8] subscribed=[Yes] volume=[not set]
[227]LogEOSSDK: LogEOSRTC: RTCRoom Participant block according to block list status and client explicit block. Result=[EOS_Success] ParticipantId=[000…4e8] InBlockList=[true] ExplicitBlock=[false] Applied=[blocked]
[227]LogEOSSDK: LogEOSRTC: RTCRoom BlockParticipantPrivate. ParticipantId=[000…4e8] State=[Unblocked] LocalProductUserId=[000…afc] RoomName=[conf+1894635923]
[227]LogEOSSDK: Warning: LogEOSRTC: RTCRoom failed to unblock participant because participant is in user’s block list. ParticipantId=[000…4e8] LocalProductUserId=[000…afc] RoomName=[conf+1894635923]
[227]LogEOSVoiceChat: Warning: [0000019A0785C9B0] OnBlockUser ChannelName=[conf+1894635923] PlayerName=[00021f6cb618427baa6ec1c45fe9e4e8] Block=[0] failed error=[EOS_RTC_UserIsInBlocklist]

Here’s call stack :

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_RTCAudio_OutputDeviceInformation_Release

EOSSDK_Win64_Shipping!EOS_RTCAudio_OutputDeviceInformation_Release

EOSSDK_Win64_Shipping!EOS_RTCAudio_OutputDeviceInformation_Release

EOSSDK_Win64_Shipping!EOS_SessionDetails_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_Presence_Info_Release

EOSSDK_Win64_Shipping!EOS_RTCAudio_OutputDeviceInformation_Release

EOSSDK_Win64_Shipping!EOS_RTCAudio_OutputDeviceInformation_Release

EOSSDK_Win64_Shipping!EOS_UserInfo_BestDisplayName_Release

EOSSDK_Win64_Shipping!EOS_UserInfo_BestDisplayName_Release

EOSSDK_Win64_Shipping!EOS_UserInfo_BestDisplayName_Release

EOSSDK_Win64_Shipping!EOS_UserInfo_BestDisplayName_Release

EOSSDK_Win64_Shipping!EOS_RTCAudio_OutputDeviceInformation_Release

EOSSDK_Win64_Shipping!EOS_RTCAudio_OutputDeviceInformation_Release

EOSSDK_Win64_Shipping!EOS_Ecom_Transaction_Release

Project_Win64_Shipping!FEOSSDKManager::Tick

Project_Win64_Shipping!Invoke

Project_Win64_Shipping!UE::Core::Private::Tuple::TTupleBase<TIntegerSequence >::ApplyAfter

Project_Win64_Shipping!TBaseRawMethodDelegateInstance<0,FEOSSDKManager,bool __cdecl

Project_Win64_Shipping!UE::Core::Private::Function::TFunctionRefCaller<`FFileCache::PushCompletedRequest’::`6’::<lambda_1>,void>::Call

Project_Win64_Shipping!FTSTicker::Tick

Project_Win64_Shipping!FEngineLoop::Tick