Hello [mention removed],
Thanks for the extra details.
I can confirm this is a UE 5.6 only regression. Following your steps, I’m able to reproduce a crash in a blank UE 5.6.1 project. However, in my case the crash occurs earlier during map load, inside UText3DRendererBase::Create() when called from UText3DComponent::OnRegister(), rather than in UText3DDefaultLayoutExtension::PreRendererUpdate().
This happens because, during incremental component registration in 5.6, the UText3DComponent can still have Owner == nullptr, and Create() dereferences GetOwner()->GetActorNameOrLabel() without a validity check. This explains why the crash can occur during map load before reaching the renderer/layout update path.
The issue is already resolved in UE 5.7 and UE5-Main (CL 49719251). I can confirm that in these versions your repro steps no longer trigger a crash, so migrating should fully address the underlying problems in the Text3D module.
As a local workaround for the crash I encountered in 5.6, adding a guard around GetOwner() in UText3DRendererBase::Create() avoids the issue:
if (!IsValid(Text3DComponent) || !IsValid(Text3DComponent->GetOwner()) )
{
return;
}
With this change, map load and PIE worked without issues. While you don’t appear to be hitting this exact crash, it may still be worth adding as an additional defensive guard.
In your case, since the crash occurs later in UText3DDefaultLayoutExtension::PreRendererUpdate(), the null check you added there is appropriate and aligns with the fixes included in UE 5.7
Please let me know if this information helps.
Best,
Francisco
[Attachment Removed]