ActorComponent FInstancedStruct property propagation issue

Greetings!

We are currently working on a feature that uses FInstancedStruct and encountered an issue.

When modifying an actor blueprint, after changing an FInstancedStruct property on an ActorComponent, the changes are not propagated to the instances of that blueprint placed in the currently open level. But after reopening the level, the value is correctly synchronized with what was set in the blueprint.

Could you please clarify if this issue is already known? If not, are there any possible workarounds we could use while waiting for a fix?

Thanks in advance!

  1. Open the level L_Test
  2. Open the Blueprint BP_InstancedStructContainerActor
  3. Select the component InstancedStructContainer
  4. Replace the struct in the field SomeStruct from TestInstancedStruct to TestInstancedStructOther
  5. Compile and save the Blueprint
  6. Switch back to the L_Test level tab
  7. Select the placed instance of BP_InstancedStructContainerActor

Expected behavior:

SomeStruct should contain a struct of type TestInstancedStructOther

Actual behavior:

SomeStruct still contains a struct of type TestInstancedStruct

  1. Open the level L_Misc
  2. Reopen the level L_Test

Now the instance of BP_InstancedStructContainerActor correctly contains a struct of type TestInstancedStructOther.

Hello [mention removed]​,

The behavior you’re describing appears to be related to a known issue: Unreal Engine Issues and Bug Tracker (UE\-164500\). This issue is currently backlogged and the fix is expected in UE 5.7.

Unfortunately, the most reliable workaround right now is to reopen the level after making changes to the BP.

Please let me know if this information helps.

Best,

Francisco