Inital launch localization crash
A game I am working on has been having an issue with the version published to steam where a crash occurs only on the very initial launch after installing that seems to be related to localization engine code. Subsequent launches and the crash is not hit again, only the initial launch.
We are having a hard time reproducing this issue, leading me to believe some sort of temp file is being created that avoids the crash on subsequent launches. However this is just a guess and has so far not helped to reproduce it.
Specifically an access violation exception is being hit in ICUCulture.cpp in the function ExtractNumberFormattingRulesFromICUDecimalFormatter. Full callstack from the log below along with a couple of preceding lines for context.
We have yet to properly implement localization data for the game and I'm wondering if that is the cause, but its a wild guess without a way to reliably reproduce the crash. Since its only on very initial launch it will be a bad thing to have for launch so need help with this asap!
We have seen the exact same crash, with UE 4.18, on another platform. It happens also with a fresh install. Do not crash after 2nd run or if we update the game.
answered May 02 '18 at 06:56 PM
Same here. I had a project which would always crash the first time after being packaged, then rarely after that. The project currently crashes less often, but still usually first time after packaged.
answered Jul 30 '18 at 10:38 PM
I solved an issue similar to this and hope this message helps someone in the future. I had crashes only in packaged builds (never editor) with the following log error:
Experienced devs told me 99% of the time it's a null pointer error, meaning you are referencing something in your c++ or blueprints which can't be referenced (usually because it doesn't exist, for example it hasn't yet been instantiated). This was true in my case.
The way to solve this issue:
1) Look in your log folder. ([yourprojectname]>Saved>Crashes). Look for the FATAL ERROR near the end and look underneath that for the callstack hint which will steer you where your problem is. In my case, it looked like this:
Notice the last message in mine. It contains the words "skeletalMesh", "sort", "TBitArray". In my case, the null pointer was a reference to a skeletal mesh inside of a switch.
2) Go into a blueprint you think the log could be referring to and disconnect the tick, begin play, and constructor wires, effectively deactivating the blueprint, and then package and run. If it stops crashing, you've found the blueprint with your toxic reference. You're zeroing in!
3) Reconnect your wires and disconnect only the part you think is responsible until the packaged build stops crashing. Find your bad reference, and then figure out why it's a bad reference. Have you instantiated it yet? (You can put in printstrings, or you can put in breakpoints and step through your blueprints to find out). In my case, it was something stranger which really threw me off: I had imported the mesh from Blender with the skeleton turned to invisible. This was enough to throw off ue4, but only when ue4 was trying to load it (hence why only the crashes in packaged builds).
The first time debugging something like this is hell, but have faith that you can and will get through it, and once you do, you'll have tremendous confidence moving forward!
answered Aug 05 '18 at 06:11 AM
Follow this question
Once you sign in you will be able to subscribe for any updates here