Threading/Plugin Issue

I am making a mobile game, starting with android, and am currently trying to get ads working in my game. I could not figure out how to get it working correctly by myself so I eventually decided to get this plugin to essentially do it for me.

AdMob Blueprint | Fab

I got this working in development mode, however it throws the following error which crashes the game in shipping mode.

“LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: === Handled ensure: ===
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error:
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: Ensure condition failed: oldValue == newValue [File:./Runtime/Core/Private/HAL/ThreadingBase.cpp] [Line: 190]
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: oldValue(0) newValue(1) If this check fails make sure that there is a FTaskTagScope(ETaskTag::EGameThread) as deep as possible on the current callstack, you can see the current value in ActiveNamedThreads(1)
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: Stack:
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: [Callstack] 0x0000006E6A6B4EBC libUnreal.so(0x0000000009291EBC)!IsInGameThread()
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: [Callstack] 0x0000006E6B20D238 libUnreal.so(0x0000000009DEA238)!UObject::ProcessEvent(UFunction*, void*)
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: [Callstack] 0x0000006E6FB53B10 libUnreal.so(0x000000000E730B10)!AActor::ProcessEvent(UFunction*, void*)
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: [Callstack] 0x0000006E6BBD3754 libUnreal.so(0x000000000A7B0754)!void TScriptDelegate::ProcessDelegate(void*) const
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: [Callstack] 0x0000006E71FE183C libUnreal.so(0x0000000010BBE83C)Unknown
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: [Callstack] 0x0000006E748A947C libUnreal.so(0x000000001348647C)!firebase::ReferenceCountedFutureImpl::ReleaseMutexAndRunCallbacks(firebase::FutureHandle const&)
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: [Callstack] 0x0000006E7490B568 libUnreal.so(0x00000000134E8568)!void firebase::ReferenceCountedFutureImpl::CompleteInternal<firebase::gma::AdapterInitializationStatus, void firebase::ReferenceCountedFutureImpl::CompleteWithResultInternalfirebase::gma::AdapterInitializationStatus(firebase::FutureHandle const&, int, char const*, firebase::gma::AdapterInitializationStatus const&)::{lambda(firebase::gma::AdapterInitializationStatus*)#1}>(firebase::FutureHandle const&, int, c
har const*, void firebase::ReferenceCountedFutureImpl::CompleteWithResultInternalfirebase::gma::AdapterInitializationStatus(firebase::FutureHandle const&, int, char const*, firebase::gma::AdapterInitializationStatus const&)::{lambda(firebase::gma::AdapterInitializationStatus*)#1} const&)
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: [Callstack] 0x0000006E7490A7AC libUnreal.so(0x00000000134E77AC)Unknown
LogPlayLevel: Error: UAT: 05-06 09:12:35.502 18476 18476 D UE : [2025.05.06-15.12.35:502][195]LogOutputDevice: Error: [Callstack] 0x0000006FADF7EF74 libart.so(0x000000000037EF74)Unknown …”

My understanding is that it is switching from the game thread to some other thread, which is a “no-no” for some reason. Everything that I have looked up online says that if it is in blueprint, it automatically runs on the game thread…which is obviously false. This error occurs on an event from the plugin that I mentioned earlier. I have tried to reach out to the creator of the plugin, but they have not responded.

There should be no problem using other threads. As long as the thread manages its own memory and does not interact with pointers from the game thread It shouldn’t crash.

Wait for the plugin creator to reply you, and if they don’t give you a solution, ask them to refund your money.