No events or verbose logs in Unreal Engine 5 built from source
J
Joshua Neff
We have UE5.0 from p4 scc, and build the project with UBT.
First, I tried adding the GA plugin from source using the Github link, but failed at integrating it.
- It didn't have a .plugin file, and I didn't spent much more time trying to tweak things. The documentation needs to be more complete, or else something needs to be updated)
Second, I installed UE5 from Epic Games launcher, and installed the GA plugin from the marketplace, THEN copied it out of the installation, into a path within Engine Plugins.
- This appeared to work, and I was able to call it from cpp (I added a dependency in the build.cs) Configured the GA plugin to be used in the .ini.
- Also could see plugin settings, and also installed the analytics blueprint library successfully
- Tried MANY permutations of manually calling startSession in native, of the analytics ?Blueprint library start session, of not using start session, of making calls to design event, setting blueprint setting to true or false for manual sessions, etc etc... but NO EVENTS LOG
- Enabled both logging options, but only see the standard logs, no verbose logs. Logs don't show errors, and just blankly show the plugin methods being called....
I've run out of things to try, please help! Thank you!
J
Joshua Neff
Nicky Toma
Thanks for stating that! Would be nice if that was in the documentation officially.
I took the time to make a packaged build and test in our project, but activating the plugin causes a "fatal error" popup with no extra info. Tried with the Blueprint session create, and with native only. I found a ga_log.txt, which was empty, and a ga.sqlite3 file (noteworthy?)
I packaged the vanilla engine and the plugin worked!! Using the blueprint path.
So, am I possibly missing something simple again? How can I diagnose the issue? I built development, and attached the debugger to the crashed packaged exe, and there is a thread in parallel stacks that shows an ntdll.dll thread doing a GenericReader<>::ParseValue<>... then ParseObject<>.. then some external code, then EngineUnhandledExceptionFilter and ReportCrash etc.
Appreciate your guidance again, thank you!
Nicky Toma
Joshua Neff: Hello! Apologies for the late response!
Would it be possible to send the entire logs you have? I can share them with our SDK team.
Otherwise it's not easy to debug and help.
J
Joshua Neff
Nicky Toma
Can't attach the log. It's 65kb, but the thing complains that it's >8MB. Obviously.
J
Joshua Neff
The ga_log file is still empty. The packaged build logs also do not include any API call info, as those are only included in editor builds, which I find somewhat ironic (and at least half-sensible).
J
Joshua Neff
Relevant log lines:
...
LogPluginManager: Mounting Engine plugin GameAnalytics
...
[2024.09.19-06.26.29:859][ 0]LogGameAnalyticsAnalytics: Display: FAnalyticsGameAnalytics Constructor
...
[2024.09.19-06.26.38:570][ 5]LogWwiseMonitor: Error: Voice Starvation
[2024.09.19-06.26.38:570][ 5]LogWindows: Could not start crash report client using ../../../Engine/Binaries/Win64/CrashReportClient-Win64-Debug.exe
[2024.09.19-06.26.38:570][ 5]LogMemory: Platform Memory Stats for Windows
[2024.09.19-06.26.38:570][ 5]LogMemory: Process Physical Memory: 2197.46 MB used, 2197.59 MB peak
[2024.09.19-06.26.38:570][ 5]LogMemory: Process Virtual Memory: 5504.31 MB used, 5504.68 MB peak
[2024.09.19-06.26.38:570][ 5]LogMemory: Physical Memory: 29048.54 MB used, 3579.32 MB free, 32627.87 MB total
[2024.09.19-06.26.38:570][ 5]LogMemory: Virtual Memory: 59647.04 MB used, 7263.98 MB free, 66911.02 MB total
[2024.09.19-06.26.40:005][ 46]Message dialog closed, result: Ok, title: The UE5-Kronos Game has crashed and will close, text: Fatal error!
[2024.09.19-06.26.40:766][ 68]LogWindows: FPlatformMisc::RequestExit(1)
[2024.09.19-06.26.40:766][ 68]LogWindows: FPlatformMisc::RequestExitWithStatus(1, 3)
J
Joshua Neff
There's virtually nothing interesting in there. We have WWise integrated, if THAT could pose a potential problem. Copilot thinks that GAHTTPApi is part of the issue, which I couldn't find in the callstack or reference anywhere, but Copliot claims it was part of the metadata sent to it from the exception.
J
Joshua Neff
Also, VS tries to load source for the exception, and this message is output at some point:
Locating source for 'D:\Jenkins\ws\wwise_v2022.1\Wwise\SDK\samples\WwiseAuthoringAPI\cpp\SampleClient\external\rapidjson\rapidjson\reader.h'. Checksum: MD5 {ca 8 91 10 a8 3a 5a 1d 7b a5 56 82 30 71 e4 a5}
The file 'D:\Jenkins\ws\wwise_v2022.1\Wwise\SDK\samples\WwiseAuthoringAPI\cpp\SampleClient\external\rapidjson\rapidjson\reader.h' does not exist.
Determining whether the checksum matches for the following locations:
1: F:\p4\uesync\ue4\Engine\Plugins\Animation\RigLogic\Source\RigLogicLib\Public\dna\Reader.h Checksum: MD5 {7 2e ad d7 b3 bd c2 3d 10 8b ea b4 db 1f 6e 9b} Checksum doesn't match.
Looking in script documents for 'D:\Jenkins\ws\wwise_v2022.1\Wwise\SDK\samples\WwiseAuthoringAPI\cpp\SampleClient\external\rapidjson\rapidjson\reader.h'...
Looking in the Edit-and-Continue directory 'F:\p4\uesync\ue4\enc_temp_folder\'...
The file with the matching checksum was not found in the Edit-and-Continue directory.
Looking in the projects for 'D:\Jenkins\ws\wwise_v2022.1\Wwise\SDK\samples\WwiseAuthoringAPI\cpp\SampleClient\external\rapidjson\rapidjson\reader.h'.
The file was not found in a project.
J
Joshua Neff
So, I'm not sure if it's related why it thinks there could be RapidJSON code built from a WWise SDK. The bad callstack includes GenericReader<>::ParseObject/Value, which seem like they could be the rapidjson code. But could that be invoked from the GAHttpAPI class? Is there a conflict in the DLLs for WWise and GA?? I'm very unsure about how that works, and how to diagnose. Hopefully the SDK team has some idea of whether it could get crossed lines with WWise, or why it might crash at all.
The game does not crash if I don't initialize the API. I am only calling from native right now:
UGameAnalytics::initialize("f883d2ec0e5e1986349b8dd6d0a4e570", "f0f193bc448e51662621b4fc3f45c40cf87d495f");
UGameAnalytics::startSession();
UGameAnalytics::addDesignEvent("KroGA_Init");
Those 3 lines only, and if I remove them, no crash.
Thank you!
Nicky Toma
Joshua Neff: Hi Joshua! Thank you. I've asked our SDK team to look over this.
J
Joshua Neff
Nicky Toma Hello! Any news?
Nicky Toma
Joshua Neff: Hi! Not anything concrete at the moment unfortunately, but our SDK team is working on releasing an updated version of the Unreal SDK which tackles issues with rapid json in general. Hopefully the updated version will also solve this issue.
I will try to get more information.
Apologies for the wait!
J
Joshua Neff
Nicky Toma Thank you! What's the timeline for that update?
Nicky Toma
Hi Joshua! Have you built the game beforehand? You can't test the events in the Unreal Editor.
J
Joshua Neff
Thanks for stating that! Would be nice if that was in the documentation officially.
I took the time to make a packaged build and test in our project, but activating the plugin causes a "fatal error" popup with no extra info. Tried with the Blueprint session create, and with native only. I found a ga_log.txt, which was empty, and a ga.sqlite3 file (noteworthy?)
I packaged the vanilla engine and the plugin worked!! Using the blueprint path.
So, am I possibly missing something simple again? How can I diagnose the issue? I built development, and attached the debugger to the crashed packaged exe, and there is a thread in parallel stacks that shows an ntdll.dll thread doing a GenericReader<>::ParseValue<>... then ParseObject<>.. then some external code, then EngineUnhandledExceptionFilter and ReportCrash etc.
Appreciate your guidance again, thank you!