When an Actor Component contains an Instanced UObject array marked EditDefaultsOnly, adding a new element to the Blueprint defaults correctly updates the Blueprint and its own Property Matrix. However, the placed actor instances already in the level do not automatically receive the new Instanced element and show “None” for the new array index in the Property Matrix. If the user selects both existing instances in the level, opens Edit Components in Property Matrix, and uses Reset Property on the “None” entry for the new array element, the value is correctly reset to the Blueprint default.
However, immediately after performing Save All, the editor crashes. The crash occurs in FAssetEditorToolkit::GetEditingObjects because the Property Editor toolkit ends up with an empty EditingObjects list after the Instanced subobject is reconstructed. The reset itself is saved correctly and appears after restarting the editor, but saving immediately after the reset always triggers the crash. This reproduces in 5.6, 5.7, and a recent source build from Main (CL 48526824).
1. Open the attached project. The default level contains two placed instances of the Actor using UMyActorComponent.
2. Open the BP_Actor asset and select the MyActorComponent actor component.
3. In the defaults, add a new element to the Configs array.
4. Set the new element to Some Config and with any value for its properties.
5. Save the blueprint.
6. Select the two placed actors in the level. Right-click and choose "Edit Components in Property Matrix", then select MyActorComponent.
7. Observe that the new array index appears as "None" for the placed instances.
8. Click Reset Property on the "None" element so it matches the default value.
9. Click Save All.
10. The editor crashes in FAssetEditorToolkit::GetEditingObjects due to an empty EditingObjects array.
Callstack for UE5-Main (CL 48526824)
> UnrealEditor-UnrealEd-Win64-Debug.dll!FAssetEditorToolkit::GetEditingObjects() Line 571 C++
UnrealEditor-PropertyEditor-Win64-Debug.dll!FPropertyEditorToolkit::GetToolkitName() Line 477 C++
[External Code]
UnrealEditor-Slate-Win64-Debug.dll!TAttribute<FText>::Get() Line 251 C++
UnrealEditor-Slate-Win64-Debug.dll!SDockTab::GetTabLabel() Line 942 C++
[External Code]
UnrealEditor-Slate-Win64-Debug.dll!SlateAttributePrivate::TSlateAttributeBase<SWidget,FText,SlateAttributePrivate::FSlateAttributeNoInvalidationReason,TSlateAttributeFTextComparePredicate,0>::FSlateAttributeGetterWrapper<SlateAttributePrivate::TSlateAttributeBase<SWidget,FText,SlateAttributePrivate::FSlateAttributeNoInvalidationReason,TSlateAttributeFTextComparePredicate,0>>::UpdateAttribute(const SWidget & Widget) Line 584 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FSlateAttributeMetaData::UpdateAttributesImpl(SWidget & OwningWidget, FSlateAttributeMetaData::EInvalidationPermission InvalidationStyle, int StartIndex, int IndexNum) Line 505 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FSlateAttributeMetaData::UpdateExceptVisibilityAttributes(SWidget & OwningWidget, FSlateAttributeMetaData::EInvalidationPermission InvalidationStyle) Line 463 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1789 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop::__l2::<lambda_1>::operator()(SWidget & Child) Line 1802 C++
UnrealEditor-SlateCore-Win64-Debug.dll!FChildren::ForEachWidget<`SWidget::Prepass_ChildLoop'::`2'::<lambda_1> &>(SWidget::Prepass_ChildLoop::__l2::<lambda_1> & Pred) Line 76 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_ChildLoop(float InLayoutScaleMultiplier, FChildren * MyChildren) Line 1818 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::Prepass_Internal(float InLayoutScaleMultiplier) Line 1754 C++
UnrealEditor-SlateCore-Win64-Debug.dll!SWidget::SlatePrepass(float InLayoutScaleMultiplier) Line 704 C++
UnrealEditor-Slate-Win64-Debug.dll!PrepassWindowAndChildren(TSharedRef<SWindow,1> WindowToPrepass, const TSharedPtr<SWindow,1> & DebuggingWindow, TWeakPtr<SWidget,1> & CurrentContext) Line 1339 C++
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::DrawPrepass(TSharedPtr<SWindow,1> DrawOnlyThisWindow) Line 1392 C++
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::PrivateDrawWindows(TSharedPtr<SWindow,1> DrawOnlyThisWindow) Line 1439 C++
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::DrawWindows() Line 1188 C++
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::TickAndDrawWidgets(float DeltaTime) Line 1793 C++
UnrealEditor-Slate-Win64-Debug.dll!FSlateApplication::Tick(ESlateTickType TickType) Line 1643 C++
UnrealEditor-Win64-Debug.exe!FEngineLoop::Tick() Line 5998 C++
UnrealEditor-Win64-Debug.exe!EngineTick() Line 60 C++
UnrealEditor-Win64-Debug.exe!GuardedMain(const wchar_t * CmdLine) Line 192 C++
UnrealEditor-Win64-Debug.exe!LaunchWindowsStartup(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow, const wchar_t * CmdLine) Line 266 C++
UnrealEditor-Win64-Debug.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * pCmdLine, int nCmdShow) Line 334 C++
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-355006 in the post.
| 0 |
| Component | UE - Editor - Workflow Systems |
|---|---|
| Affects Versions | 5.6, 5.7, 5.8 |
| Created | Nov 21, 2025 |
|---|---|
| Updated | Feb 23, 2026 |