Android "Fatal...FMallocBinned Attempt... GetAllocationSizeExternal... unrecognized pointer" | CES 2.17.0, UE 5.6

Mirrored from https://github.com/CesiumGS/cesium-unreal/issues/1712

What happened?

Hope this is the right place for a potential bug report. Upon quick-launching my app to Android, I receive the following on or immediately after the UE splash:

  • Fatal error: FMallocBinned Attempt to GetAllocationSizeExternal an unrecognized pointer
    The level fails to load when any CES tileset is added, notably when loading from CES Ion and an ellipsoid.

I am new to Android development, but I have had success launching without a CES tileset. Maybe this is an issue with the latest version of CES (2.17.0) for UE (5.6)?

See the attached the abd logcat file.

MDP_pixel8pro_crash.txt

Environment

Cesium for Unreal version: 2.17.0
Unreal Engine Version: 5.6
Operating System: Windows 11

Reproduction steps

  1. Create new UE project on 5.6 and install CES 2.17.0
  2. Add CES 3D Tileset to level (Google, World Terrain, …)
  3. Quick-deploy to Android device
  4. See crash on or immediately after UE splash, before level load

Supporting evidence

See prior logcat file.

Hi @CoulterMDP, thanks for reporting this, and for the detailed steps to reproduce.

I can reproduce this on my Pixel 6 Pro, but I don’t know yet what causes it. The good news is that doing a full package of the game for the device works fine. It seems to only be the Quick Launch that has this crash at startup.

I wrote an issue for it here:

Very interesting. I didn’t think to create a full package! Good to know this is reproducible and good luck to your team in figuring this out. Wish I could provide a solution :upside_down_face:

Hi Kevin. I tried the full package and I get the same error when launching it off of my device. I’ve attached the latest logcat for your reference. I’ve also been getting a prompt to enable storage permissions, but those permissions can’t be given on my android version. This was before the same error occurred again. Anyways, I’m going to be trying some fixes over the next week. I’ll keep you updated.
MDP_pixel8pro_crash_packaged.zip (101.7 KB)

Hmm interesting. Can you try doing a full package of the Cesium for Unreal Samples project, and see if you have the same problem? That’s what I tried, and it worked ok for me.

I created a fresh CesiumForUnrealSamples project and used the project launcher 2 times:

  1. Streamed to device
  1. Installed on device

Both crashed for the same reasons. I’ve trimmed the logs a little.

I’ll keep mirroring these posts to the GitHub repo. Thanks for your help so far.

There recently have been reports about stringstream causing trouble in 5.6 (with the exact error message that can be seen here), e.g. at c++ - How to build an Android app using Unreal Engine 5.6 so I can use std::stringstream without crashing? - Stack Overflow - now, given the complexity of … *points in all directions* … this, it doesn’t have to be related, but that code there could be a “baseline test”, in some sense…

You’re probably on to something there, @Marco13. Perhaps we need a workaround on Android similar to this one on iOS:

That is, perhaps Unreal Build Tool is over-aggressively stripping symbols from the built executable, breaking its own custom allocator.

Hi guys. Any updates on this by chance? :slight_smile:

HI

Also looking for a solution to this problem

I also encountered the same problem. Could you please tell me how you solved it?