A Movable actor casting a dynamic shadow invalidates VSM cache pages every frame. That is correct behaviour. The problem is how many actors in a real level are Movable by accident. An import default set it. A blockout left it. Nobody went back.
The reason people leave them alone is that flipping a thing to Static is scary. If something does move it later you get a wrong shadow and no error.
So the useful part isn’t the flip. It’s the proof. Before touching an actor you want to know it has no movement component and no physics and no Sequencer binding and no Blueprint writing its transform and no moving parent. If any one of those is unknown then leave it alone and say why.
We built that check into a tool. It previews. It undoes. It rescans after saving so the offending set reads empty rather than asking you to trust it. It refuses loudly on anything it cannot prove still.
Code and graphics are AI generated and the store page says so.