UBA assert during build of Linux CrashReportClient after Windows Update KB5060842

Horde builds started reporting an assert in local UBA while building the Linux CrashReportClient. This was reproduced on local developer machines.

We are on UE 5.5.4

It has been narrowed down to a Windows 11 Update KB5060842 from June 10 2025

Was this encountered elsewhere? Is there a proposed/future solution besides uninstall of the update?

[Image Removed]

[519/520] (Wall: 4.10s CPU: 8.56s) Link (lld) CrashReportClient  878[00:00:24] ASSERT: Unhandled Exception (Code: 0xc0000005)  879[00:00:24] Callstack:  880[00:00:24] ntdll.dll: +0x73e46  881[00:00:24] ntdll.dll: +0x743a6  882[00:00:24] ntdll.dll: +0x165b7e  883[00:00:24] UbaDetours.dll: +0x492e  884[00:00:24] ucrtbase.dll: +0x3d189  885[00:00:24] ucrtbase.dll: +0x14a0c  886[00:00:24] ucrtbase.dll: +0x1488b  887[00:00:24] ucrtbase.dll: +0x14844  888[00:00:24] ucrtbase.dll: +0x14e01  889[00:00:24] combase.dll: +0x18889d  890[00:00:24] combase.dll: +0x1888bd  891[00:00:24] combase.dll: +0xc8d5c  892[00:00:24] combase.dll: +0xc839e  893[00:00:24] 1 file(s) moved.  894[00:00:24] [520/520] (Wall: 0.18s CPU: 0.19s) WriteMetadata CrashReportClient-Linux-Shipping.target (UBA disabled)

Steps to Reproduce
build the Linux CrashReportClient on Windows machine

./RunUBT.bat CrashReportClient Linux Shipping

Hey there,

Would it be possible to run this with the debug version (as described here) so that we could get more detailed logs on what’s going on here, as well as get the resolved callstack (UBA should be attempting to resolve it via collected stack pointers, and PDBs).

We haven’t tested against this Windows 11 Update just yet (just spoke with the domain SME), so we can give it a whirl on our end as well.

Kind regards,

Julian

Some additional details:

  1. Crashing process is breakpad’s dump_syms.exe ran after linking any Linux binary.
  2. Build “succeeds” because the .psym output is not essential to complete the build, but also means Linux debugging symbols will not be available.
  3. UbaDetours.dll: +0x492e appears to be the detoured realloc, hypothesis is a ucrt allocation is being made somehow and later fed to mimalloc’s mi_realloc.
  4. dump_syms has DIA as a dependency, which is likely the COM library seen in the callstack. Hypothesis is it’s now able to make a memory allocation bypassing mimalloc after KB5060842.

Hey there,

Please give the following a try as well…

  1. Navigate to your Binaries folder for UnrealBuildAccelerator
  2. Open the UbaHost.toml file
  3. Add the following if it doesn’t exist

[Session] DisableCustomAllocator = trueThis should switch over to the default allocator.

Julian

Thanks for giving that a try. Can you please rebuild a debug variant of this and provide the generated logs. This will give us more to work with whilst we setup an update test environment.

Julian

Also, Jack noticed KB5063060 also contains the breaker

Hey there,

Thanks for the trace log - could you also please attach the initiating machine log and the corresponding session log (if the crash is appearing on a compute agent; it doesn’t seem to be the case however). Just viewing this there isn’t any extra detail. The UBA trace seems fine as it’s completed the link.

Julian

I also tried making a debug build of dump_syms to get a more insightful stack dump from there. There must be some uncommitted source changes because I can’t get the thing to build for Windows.

I just found a solution. The trick is to treat realloc family the same way as free, predicated on IsInMiMalloc. Here’s a patch of my changes.

Hey there,

When referring to rebuilding in debug, I am referring to the core UBA applications (UbaCli, UbaAgent, UbaHost, UbaCommon). Dump_Syms will be breakpad, which I haven’t had to recompile actually - I can take a look at that separately.

I’ve forwarded over your patch to the SME of UBA ([mention removed]​ ).

Appreciate that!

Kind regards,

Julian

This have been fixed in latest binaries in main. (I think it takes a while before they are submitted in github.. like 2-3 hours or something like that)

Thank you for the quick turnaround!

Hello! We are facing the same issue on our build agents that got this Windows update as well (Unreal Engine 5.5).

What would be the proper approach to apply this fix? Is it going to be another hotfix version for 5.5.xxx release, or should we try to manually get it from 5.6 main (which I assume could cause conflicts with 5.5 UBA version)?

And in case we need to manually apply it which files and .dlls should we rebuild (should it be the whole UBA)?

Hey there,

For posterity, the fixing change is here. For 5.5, you could try and use the 5.6 binaries for a local build. Short of this, you’d need to apply either the fix above (via [Content removed] or wait until we get a 5.5 binary patch in (I’ll work with Henrik to see if we can get this - at the very least we can host the binaries on the Practical Debugging UBA page).

Stay tuned :slight_smile:

Edit: I’ve created a backport binary package here for 5.5

Julian

this did not seem to avoid the assert

I altered the file here:

D:\Horde\SDS-I\Sync\Unreal\Engine\Binaries\Win64\UnrealBuildAccelerator\x64\UbtHost.toml

Logs attached

not sure if there’s any more information in here than normal?

let me know if you need me to try again

If a hotfix isn’t available in a timely manner, here’s the minimal patch procedure to stop the dump_syms crash:

First, run the .bat file mentioned here to set up the UBA solution:

https://dev.epicgames.com/community/learning/knowledge\-base/jB32/unreal\-engine\-fortnite\-practical\-unrealbuildaccelerator\-debugging\-tips\#ubasolution\&compilingindebug

Then edit UbaDetoursFunctionsMiMalloc.inl so `Detoured__realloc_base` is implemented as such:

void* Detoured__realloc_base(void* memblock, size_t size) { if (IsInMiMalloc(memblock)) return mi_realloc(memblock, size); else return True__realloc_base(memblock, size); }Then build just the UbaDetours target. The .dll is output at `Engine\Binaries\Win64\UnrealBuildAccelerator\x64\UbaDetours.dll`

Rebuilding UnrealBuildTool is also necessary so it copies this .dll into `Engine\Binaries\DotNET\UnrealBuildTool\runtimes\win-x64\native\UbaDetours.dll`