Randomly getting "StaticMeshComponent0 has to be ‘Movable’ if you’d like to move" after level loads

I’m getting “StaticMeshComponent0 has to be ‘Movable’ if you’d like to move” messages from every static mesh actor in my level after its loaded while in PIE, seemingly at random. And certain objects don’t seem to have their Begin Play called when I receive the above messages, but the rest of the blueprint does run with errors due to the initialization in Begin Play not happening.

I’m not doing anything fancy with my level loads, just calling Open Level (by Name), and I’m not trying to move those static meshes with blueprint either.

Any ideas?

Hey Wahooney!

Strange. It seems like you have something in your code somewhere telling everything to shift. Honestly try giving UE a reboot. It’s silly but sometimes when it’s just weird stuff that doesn’t make sense I find giving it a refresh can help. What makes me think of a restart is that it doesn’t happen consistently. Anyone else have any ideas?

Nope, nothing of the sort. I used to get it a lot like multiple times a session, then it stopped for a while, now I might get 1 every few days.

Thanks though.

TL;DR Switching to 5.1 removed this problem completely.

The plot thickens: It seems that this tends to happen every time I load a level that had not been loaded yet, with assets that had not been loaded yet ONLY after my PC has been hard reset (about to put some debug breaks and reset again*). If I reload Unreal in the same Windows session the problem manifests far more rarely.

Could this be some kind of issue that the level is considered fully loaded before the mesh assets and those static actors are incorrectly marked as “moved” because their static mesh data was changed after being loaded asynchronously?

Edit: Tested the hard-reset theory 3 times in a row and 3 times I get these messages. I tested a fourth with debug breaks in a blueprint that I know causes me problems in these cases and Unreal actually crashed, probably worth testing this again.

Could it be that the assets stay in memory and instantly restarting Unreal without resetting windows just keeps those assets in memory and that’s why I don’t get this error consistently in single Windows session?

Edit 2: It seems that any time you put a debug break in a blueprint’s Begin Play (before any delays, no windows hard-reset necessary), when a level is synchronously loaded via blueprint Unreal will crash when that breakpoint is hit. I’ve tested this on multiple blueprints in two different projects. Not sure if it’s related to my original problem but it wouldn’t surprise me.

I’m going to test both of these problems on 5.1, hopefully they’re fixed there.

FINAL EDIT: Can’t upgrade this project to 5.1, it relies deeply on plugins not compiled for 5.1, will have to wait for 5.1 release and plugin’s update. Might try to make another project with a minimal example of this issue.

1 Like