Summary
Regression 5.8.1 β 5.8.2. Text3D components inside Blueprint actors (StaticMeshesRenderer) stop rendering after any Construction Script rerun (including level load in the editor). The renderer reuses glyph StaticMeshComponents that the engine already destroyed (TRASH_*). Clicking such a component in the Details Components tree crashes the editor. Same project and level work in 5.8.1.
What Type of Bug are you experiencing?
Editor
Steps to Reproduce
- Create a Blueprint actor, add a Text3D component (default Text Renderer Class = Text3DStaticMeshesRenderer), set Text to β999β.
- Place the actor in a level and save.
- Reopen the level (or change any property of the actor in Details so the Construction Script reruns).
- Select the actor and click the Text3D component (or its child StaticMeshComponent) in the Details Components tree.
Expected Result
The text renders after the Construction Script rerun; the components tree can be clicked without a crash.
Observed Result
Text disappears. Log shows one line per glyph:
LogActorComponent: RegisterComponentWithWorld: (β¦/..StaticMeshesRenderer.TRASH_StaticMeshComponent_N) Trying to register component with IsValid() == false. Aborting.
Clicking the component: EXCEPTION_ACCESS_VIOLATION reading address 0x0, call stack LevelEditor β TypedElementRuntime β SubobjectEditor β Slate (CrashContext attached).
Analysis: AActor::DestroyConstructedComponents renames the glyph components to TRASH_* and destroys them; FText3DComponentInstanceData carries the old UText3DStaticMeshesRenderer to the new component; UText3DStaticMeshesRenderer::AllocateComponents moves the destroyed components into CharacterMeshesPool and pops them again without an IsValid() check, then calls AddOwnedComponent/RegisterComponent on garbage objects. Suggested fix: IsValid() in the RemoveAll predicates and when popping CharacterMeshesPool. Workaround: TextRendererClass = Text3DDynamicMeshRenderer.
Affects Versions
5.8
Platform(s)
Windows
For crash reports, include your callstack
Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000000
Engine 5.8.2-56702186+++UE5+Release-5.8 (Launcher build, no symbols; module+offset below)
UnrealEditor-LevelEditor 0x00007ff95ff00000+0x77555
UnrealEditor-LevelEditor 0x00007ff95ff00000+0x78126
UnrealEditor-TypedElementRuntime 0x00007ff961630000+0xe781
UnrealEditor-TypedElementRuntime 0x00007ff961630000+0xd749
UnrealEditor-TypedElementRuntime 0x00007ff961630000+0x19daf
UnrealEditor-LevelEditor 0x00007ff95ff00000+0x17c394
UnrealEditor-LevelEditor 0x00007ff95ff00000+0x134d61
UnrealEditor-SubobjectEditor 0x00007ff95e500000+0x94236
UnrealEditor-SubobjectEditor 0x00007ff95e500000+0x811ae
UnrealEditor-SubobjectEditor 0x00007ff95e500000+0x596d4
UnrealEditor-SubobjectEditor 0x00007ff95e500000+0x87de5
UnrealEditor-SubobjectEditor 0x00007ff95e500000+0x87e4e
UnrealEditor-SubobjectEditor 0x00007ff95e500000+0x7e641
UnrealEditor-Slate 0x00007ff986590000+0x11a8a
UnrealEditor-Slate 0x00007ff986590000+0x5a75e
UnrealEditor-Slate 0x00007ff986590000+0x4ca1f
UnrealEditor-Slate 0x00007ff986590000+0x4453e
UnrealEditor-ApplicationCore 0x00007ff9d23d0000+0x33323
UnrealEditor-ApplicationCore 0x00007ff9d23d0000+0x1e9ea
UnrealEditor-ApplicationCore 0x00007ff9d23d0000+0x368e1
UnrealEditor-ApplicationCore 0x00007ff9d23d0000+0x1ac61
USER32 0x00007ffa4dcf0000+0xc366
USER32 0x00007ffa4dcf0000+0xa7bd
UnrealEditor-ApplicationCore 0x00007ff9d23d0000+0x67279
UnrealEditor 0x00007ff6ede30000+0x32175
UnrealEditor 0x00007ff6ede30000+0x1c4ac
UnrealEditor 0x00007ff6ede30000+0x1c5ba
UnrealEditor 0x00007ff6ede30000+0x21256
UnrealEditor 0x00007ff6ede30000+0x35c74
UnrealEditor 0x00007ff6ede30000+0x3902a
KERNEL32 0x00007ffa4e550000+0x2ccb7
ntdll 0x00007ffa4fbe0000+0xaad6c
Additional Notes
Full CrashContext.runtime-xml, UEMinidump.dmp and editor log for both crashes are available (1.7 MB zip) and can be provided on request or via a share link.