Sequencer Crash when Hovering over Binding Properties on a Component with Spaces in its Name

  1. Create a new Level Sequence and open it in Sequencer
  2. Drag and drop a Blueprint into Sequencer
  3. Add a component to the Spawned blueprint and name it something with spaces
  4. Click the + button to the right of the Blueprint to add a track
  5. Choose the newly created component from the Component section
  6. Right-click on the newly created track for that component
  7. Move the mouse over the Binding Properties row at the top of the context menu
  8. The editor crashes

Steps to Reproduce
Hello!

I’ve bumped into a crash that has a 100% repro in 5.6.1

Repro steps:

  1. Create a new Level Sequence and open it in Sequencer
  2. Drag and drop a Blueprint into Sequencer
  3. Add a component to the Spawned blueprint and name it something with spaces
  4. Click the + button to the right of the Blueprint to add a track
  5. Choose the newly created component from the Component section
  6. Right-click on the newly created track for that component
  7. Move the mouse over the Binding Properties row at the top of the context menu
  8. The editor crashes

I investigated it briefly, but it appears to be crashing when trying to create the path breadcrumb to the component. Components can legally have spaces in their names, but file paths within Unreal cannot.

I’m reaching out to see if this has already been reported/fixed or if this is something we need to solve locally in the meantime.

Thanks!

-Nathaniel Winckler

Thanks for raising this,

It hasn’t been reported or fixed, partially because the workflow is relatively out of the norm. (most teams don’t put spaces in their component names). You can follow the issue here:

https://issues.unrealengine.com/issue/UE-352954

I would recommend working around it for now by not adding spaces, any code workaround is pretty deep in the widget generation path and could have knockons to bindings.

Dustin

Yeah, I would recommend changing the check to an ensure in FFragmentType::ToString of UniversalObjectLocatorFragmentType.cpp

checkf(!FAsciiSet::HasAny(StringRepresentation, InvalidChars),
 
//TO
 
ensureMsgf(!FAsciiSet::HasAny(StringRepresentation, InvalidChars),

We’ve done that for 5.7.

Dustin

Thanks for the quick response, Dustin! I was afraid of that. Unfortunately, I don’t think removing spaces is a viable option at this point due to the breadth of Possessables already bound to components with spaces in their names.

If you have any pointers to what could be done in code, that would be great! Currently, we’re investigating not displaying the Locator at all in the view since I’m not sure it’s that useful to our workflows.

Perfect, this works for me! Thank you!