Gameplay Tag Container causes crash in packaged build

Hi, I’m experiencing crashes while using Gameplay Tags.

I have a c++ base class

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "GameplayTagContainer.h"
#include "BacteriumCardBase.generated.h"

UCLASS(Blueprintable, AutoExpandCategories = "Bacterium Card")
class BACTERIUM_API UBacteriumCardBase : public UObject
{
	GENERATED_BODY()

public:

	UPROPERTY(EditDefaultsOnly, BlueprintReadWrite, Category = "Bacterium Ability")
		FGameplayTagContainer CardTag;

}; 

Then, I have a blueprint based on this class. If I add any tags to the blueprint class in the editor, it crashes with error message Assertion failed: RecursionNotAllowed.Increment() == 1 [File:D:\Build++UE4+Release-4.18+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\Serialization\AsyncLoading.cpp] [Line: 4260]

Crash doesn’t happen if tag field in the blueprint is left empty. Occurring only in packaged builds, disabling Event driven loader doesn’t seem to matter.
Launcher build. Tested in Windows_64, Android Api 25.

**Log output: **
Paste Bin

Hello MrGreek,

I tried reproducing this by copying the code you provided but I’m not getting any sort of crash. Would it be possible for you to provide a small reproduction project to reproduce this crash?

Hello Matthew,

After some more testing, I managed to narrow down the cause of the issue. It seems to be causing crash if instances of base c++ class are added to a TMap list in a singleton class and accessed from other classes in the project.
I managed to replicate this issue in a clean test project Download link.

Bump…

Bumps may get you a later response, as things are usually focused on when they haven’t been responded to in a longer amount of time. I’ll be taking a look at the issue in due time.

You mentioned in your original post that disabling Event Driven Loader doesn’t seem to change anything but, from testing the provided project, I only experience this crash when Event Driven Loader is enabled. Disabling Event Driven Loader isn’t a viable solution, but it could work as a workaround in the meantime. I’m going to test our latest internal build and if it still occurs, I’ll enter a bug report. I’ll keep you updated here.

Hello MrGreek,

I apologize for the delay on this but I’ve entered a bug for the issue. As mentioned before, disabling EDL would be the best workaround for now. You can find the bug report here: UE-53538

Have a nice day!

This will be fixed in a future update. I’m not sure how common the crash actually will be, but the fix is pretty simple if you want to do it yourself. Move the call to UGameplayTagsManager::Get() in UEngine::InitializeObjectReferences from the bottom of the function to the top of the function. If you don’t want to do engine changes you could also call that from your game module’s initialization

Thank you

I had a freezing problem instead of crashing. Rebuilding seems to fix the problem. (4.27)