Socket Attachment Lost After Level Reload When Attaching to Child Actor Component's Static Mesh Actor (Drag & Drop)

Hello everyone, I’ve encountered an issue with socket attachments in the World Outliner that behaves differently depending on the attachment method used.

Environment:

  • Unreal Engine: 5.7.1

Issue Description:
I have a Child Actor Component with its “Child Actor Class” set to a Static Mesh Actor (e.g., a truss with sockets). When I attach another Actor to one of these sockets using drag & drop in the World Outliner, the attachment is not persistent after reloading the level. However, when I use the right-click “Attach To” menu, the attachment is saved correctly.

Actor Hierarchy:

Parent Blueprint Actor
└─ Child Actor Class: Static Mesh Actor (with sockets)
    └─ [Trying to attach] Actor (e.g. primitive) → Socket

Steps to Reproduce:

Method 1: Drag & Drop (NOT working)

  1. Create a Blueprint Actor in the Contents Browser
  2. Add a Child Actor Component and set its “Child Actor Class” to a Static Mesh Actor (one that has sockets defined)
  3. Place an instance of this Blueprint in the level
  4. Place another Actor in the same level
  5. In the World Outliner, drag this Actor onto the Child Actor Component’s spawned Static Mesh Actor
  6. Select a socket from the popup dialog
  7. Save the level
  8. Reload the level (or restart the editor)
  9. Result: The attachment is lost - the Actor is no longer attached to the socket

Method 2: Right-Click Menu (Working correctly)

  1. Follow steps 1-4 above
  2. Right-click on the Actor you want to attach in the World Outliner
  3. Select “Attach To” from the context menu
  4. Choose the Child Actor Component’s Static Mesh Actor and select the socket
  5. Save the level
  6. Reload the level
  7. Result: The attachment is preserved correctly

Expected Behavior:
Both attachment methods should save and persist the socket attachment after reloading the level.

Actual Behavior:
Only the right-click menu method persists the attachment. The drag & drop method loses the attachment on level reload.

Additional Information:

  • The attachment appears to work correctly during the same editor session
  • The issue only appears after saving and reloading the level
  • Both methods show the same visual result initially
  • This specifically occurs when attaching to a Static Mesh Actor spawned by a Child Actor Component

IMPORTANT NOTE - Workaround Discovered:
Interestingly, I found that the issue does NOT occur if I:

  1. Place a regular Actor in the level first
  2. Add a Child Actor Component to that Actor instance in the level
  3. Set the Child Actor Class to a Static Mesh Actor with sockets
  4. Use drag & drop to attach another Actor to the socket

In this case, the drag & drop attachment persists correctly after reload.

The issue ONLY occurs when:

  • The Actor was created/designed with the Child Actor Component already included from the start (e.g., in a Blueprint)
  • Then an instance is placed in the level
  • Then drag & drop is used for socket attachment

This suggests the problem might be related to how attachments are serialized differently between “Blueprint-defined” Child Actor Components vs “instance-added” Child Actor Components.

Question:
Is this a known limitation or expected behavior when working with Child Actor Components defined in Blueprints? Or should drag & drop work the same way regardless of when/how the Child Actor Component was added?

Any insights or workarounds would be greatly appreciated!

Thanks in advance.