Windows build - crash on start due to unhandled exception in EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainer
Describe the bug We are implementing EAC in our game. We created a windows build. We are starting it with EACLauncher.exe After EAC launcher finishes loading game crashes.
Desktop (please complete the following information):
- OS: Windows x64
- standalone build
- Unity Version 2021.3.14f1
- Plugin Version 3.1.3
Additional context We do not use EOSBootstrapper (see my question https://github.com/PlayEveryWare/eos_plugin_for_unity/discussions/654) Could this be causing the problems?
Stacktrace:
[0x0] ntdll!NtWaitForMultipleObjects+0x14 0x94defdd9c8 0x7ffb9cfdaf90
[0x1] KERNELBASE!WaitForMultipleObjectsEx+0xf0 0x94defdd9d0 0x7ffb9cfdae8e
[0x2] KERNELBASE!WaitForMultipleObjects+0xe 0x94defddcc0 0x7ffb4041b452
[0x3] UnityPlayer!winutils::ExternalCrashHandler::HandleCrash+0x242 0x94defddd00 0x7ffb4041b4e2
[0x4] UnityPlayer!winutils::ExternalCrashHandler::HandleCrash+0x22 0x94defdddb0 0x7ffb4042c398
[0x5] UnityPlayer!winutils::CrashHandler::HandleCrash+0x30 0x94defdde00 0x7ffb9d0ae197
[0x6] UnityPlayer!winutils::ProcessInternalCrash+0x118 0x94defdde00 0x7ffb9d0ae197
[0x7] KERNELBASE!UnhandledExceptionFilter+0x1e7 0x94defdde30 0x7ffb9f6354b0
[0x8] ntdll!RtlUserThreadStart$filt$0+0xa2 0x94defddf50 0x7ffb9f61ca06
[0x9] ntdll!_C_specific_handler+0x96 0x94defddf90 0x7ffb9f6323af
[0xa] ntdll!RtlpExecuteHandlerForException+0xf 0x94defde000 0x7ffb9f5e14b4
[0xb] ntdll!RtlDispatchException+0x244 0x94defde030 0x7ffb9f630ebe
[0xc] ntdll!KiUserExceptionDispatch+0x2e 0x94defde740 0x7ffb45569812
[0xd] EOSSDK_Win64_Shipping!EOS_IntegratedPlatform_CreateIntegratedPlatformOptionsContainer+0x42 0x94defdeec0 0x7ffb94888c4d
[0xe] GfxPluginNativeRender_x64!global_log_flush_with_function+0x3e8d 0x94defdef00 0x7ffb9488a0f1
[0xf] GfxPluginNativeRender_x64!UnityPluginLoad+0x1101 0x94defdf330 0x7ffb400b3b3f
[0x10] UnityPlayer!RegisterPlugin+0x15f 0x94defdf7f0 0x7ffb400b1bbc
[0x11] UnityPlayer!InitializePlugin+0xac 0x94defdf870 0x7ffb400b36d6
[0x12] UnityPlayer!FindAndLoadUnityPlugin+0x1dc 0x94defdf870 0x7ffb400b36d6
[0x13] UnityPlayer!PluginsInitializePreloadedPlugins+0x46 0x94defdf910 0x7ffb3fed7399
[0x14] UnityPlayer!CallbackInfoBase<void (__cdecl*)(void),void (__cdecl*)(void const *)>::Invoke+0x8 0x94defdf940 0x7ffb400bc8ec
[0x15] UnityPlayer!CallbackArray::Invoke+0x39 0x94defdf940 0x7ffb400bc8ec
[0x16] UnityPlayer!PlayerInitEngineNoGraphics+0x2fc 0x94defdf970 0x7ffb402a6210
[0x17] UnityPlayer!UnityMainImpl+0x6a0 0x94defdfa20 0x7ffb402a87eb
[0x18] UnityPlayer!UnityMain+0xb 0x94defefc90 0x7ff778a911f2
[0x19] MyGame!invoke_main+0x21 0x94defefcc0 0x7ffb9d877344
[0x1a] MyGame!__scrt_common_main_seh+0x106 0x94defefcc0 0x7ffb9d877344
[0x1b] kernel32!BaseThreadInitThunk+0x14 0x94defefd00 0x7ffb9f5e26b1
[0x1c] ntdll!RtlUserThreadStart+0x21 0x94defefd30 0x0
Hi, we haven't fully tested using EAC without the Bootstrapper, so it is possible that it may cause problems.
However this IntegratedPlatformOptions does look a little weird, because it doesn't seem to exist on Windows in previous versions.
In the meantime, try using EOSBootstrapper if it solves the ploblem, we will check if there is something wrong related to IntegratedPlatformOptions
Thank you, I will try to use EOSBootstrapper UPDATE: We temporarily have problems with our CI, when we will fix it we will try to use EOSBootstrapper
By the way, may the problem be related to problem addressed by PR https://github.com/PlayEveryWare/eos_plugin_for_unity/pull/673 ?
I see that there are some changes related to EOS_DYNAMIC_BINDINGS and AlwaysLinkAssembly in this PR. I'm not sure that EOS_DYNAMIC_BINDINGS and AlwaysLinkAssembly affects original problem in current issue, but it looks suspicious (I may be wrong).
Thank you, I will try to use EOSBootstrapper UPDATE: We temporarily have problems with our CI, when we will fix it we will try to use EOSBootstrapper
By the way, may the problem be related to problem addressed by PR #673 ? I see that there are some changes related to
EOS_DYNAMIC_BINDINGSandAlwaysLinkAssemblyin this PR. I'm not sure thatEOS_DYNAMIC_BINDINGSandAlwaysLinkAssemblyaffects original problem in current issue, but it looks suspicious (I may be wrong).
PR #673 affects this neither directly nor indirectly (at least as far as I can tell). That PR primarily addresses issues related to building from one platform to another, but from the information you provided you are building on Windows and targeting the Windows platform, so that process should not intersect with the fixes in that PR. Additionally: Usage of EOS_DYNAMIC_BINDINGS was restored per feedback on the PR, and the AlwaysLinkAssembly attribute behaves the same as it did before.
Looking forward to hearing what you learn after your CI issues are resolved.
We fixed our CI and checked with EOSBootstrapper - same result (same crash)
I will try to reproduce on empty project
I reproduced this issue on empty project.
I found that that we not set Product Version nor Use Unity App Version for Product Version fields. When I set Product Version problem has gone, at least on empty project. Now I'm building main project with Use Unity App Version for Product Version set to true. We expect that this will fix the problem for main project, too.
Setting the Product Version fixed problem for main project, too. It would be cool if EOS/Plugin Settings editors in Unity will validate and warn user if not Product Version nor "Use Unity App Version.." are set. Or maybe show some error in runtime when version is not set.
Setting the Product Version fixed problem for main project, too. It would be cool if EOS/Plugin Settings editors in Unity will validate and warn user if not Product Version nor "Use Unity App Version.." are set. Or maybe show some error in runtime when version is not set.
This is excellent feedback. We will incorporate changes that make configurations errors clearer to diagnose. I really appreciate you following through with all this information - super helpful @PetrBodnar - and apologies we were not able to more immediately identify the source of the problem for you.