[5.8.2] Text3D in Blueprint actors loses glyph meshes (TRASH_ components reused) and crashes editor on component click

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

  1. Create a Blueprint actor, add a Text3D component (default Text Renderer Class = Text3DStaticMeshesRenderer), set Text to β€œ999”.
  2. Place the actor in a level and save.
  3. Reopen the level (or change any property of the actor in Details so the Construction Script reruns).
  4. 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.

1 Like