Description

Engine will crash when attempting to save soft object reference.

"FArchive does not support FSoftObjectPtr serialization. Use FArchiveUObject instead."

Also reproduced in Main CL #4247864

Steps to Reproduce

Example project attached.

  1. Create an Actor and SaveGame Object
  2. Create a function in Child actor that adds an array of your actor soft object references.
  3. In Actor: On begin play, create save game object from created class.
  4. Create a SaveGameObject variable and set it to Return Value from CreateSaveGameObject
  5. Call function on child actor (Feed in a reference to self as soft object reference)
  6. Save game to slot with your save game object variable.
Callstack

Fatal error: [Link Removed] [Line: 385] FArchive does not support FSoftObjectPtr serialization. Use FArchiveUObject instead.

UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:425]
UE4Editor_Core!FArchive::operator<<() [d:\build\++ue4\sync\engine\source\runtime\core\private\serialization\archive.cpp:386]
UE4Editor_Engine!FArchiveProxy::operator<<() [d:\build\++ue4\sync\engine\source\runtime\core\public\serialization\archiveproxy.h:58]
UE4Editor_CoreUObject!USoftObjectProperty::SerializeItem() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\propertysoftobjectptr.cpp:54]
UE4Editor_CoreUObject!UArrayProperty::SerializeItem() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\propertyarray.cpp:210]
UE4Editor_CoreUObject!FPropertyTag::SerializeTaggedProperty() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\propertytag.cpp:188]
UE4Editor_CoreUObject!UStruct::SerializeTaggedProperties() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:1167]
UE4Editor_CoreUObject!UObject::SerializeScriptProperties() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\obj.cpp:1310]
UE4Editor_CoreUObject!UObject::Serialize() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\obj.cpp:1244]
UE4Editor_Engine!UGameplayStatics::SaveGameToSlot() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gameplaystatics.cpp:1733]
UE4Editor_Engine!UGameplayStatics::execSaveGameToSlot() [d:\build\++ue4\sync\engine\source\runtime\engine\classes\kismet\gameplaystatics.h:42]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4728]
UE4Editor_CoreUObject!UObject::CallFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:772]
UE4Editor_CoreUObject!UObject::ProcessContextOpcode() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2197]
UE4Editor_CoreUObject!UObject::execLetBool() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:2099]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:984]
UE4Editor_CoreUObject!UObject::CallFunction() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:896]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:984]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4728]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1344]
UE4Editor_Engine!AActor::ProcessEvent() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:724]
UE4Editor_Engine!AActor::BeginPlay() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:3250]
UE4Editor_Engine!AActor::DispatchBeginPlay() [d:\build\++ue4\sync\engine\source\runtime\engine\private\actor.cpp:3210]
UE4Editor_Engine!AWorldSettings::NotifyBeginPlay() [d:\build\++ue4\sync\engine\source\runtime\engine\private\worldsettings.cpp:230]
UE4Editor_Engine!AGameStateBase::HandleBeginPlay() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gamestatebase.cpp:177]
UE4Editor_Engine!UWorld::BeginPlay() [d:\build\++ue4\sync\engine\source\runtime\engine\private\world.cpp:3699]
UE4Editor_Engine!UGameInstance::StartPlayInEditorGameInstance() [d:\build\++ue4\sync\engine\source\runtime\engine\private\gameinstance.cpp:400]
UE4Editor_UnrealEd!UEditorEngine::CreatePIEGameInstance() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\playlevel.cpp:3298]
UE4Editor_UnrealEd!UEditorEngine::PlayInEditor() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\playlevel.cpp:2433]
UE4Editor_UnrealEd!UEditorEngine::StartQueuedPlayMapRequest() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\playlevel.cpp:1268]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\editorengine.cpp:1605]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:403]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3495]
UE4Editor!GuardedMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:144]
UE4Editor!WinMain() [d:\build\++ue4\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:223]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283]
kernel32
ntdll

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-62847 in the post.

1
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.20.1
Target Fix4.21
Fix Commit4280976
Main Commit4289353
Release Commit4399518
CreatedAug 13, 2018
ResolvedAug 13, 2018
UpdatedOct 2, 2018