PostEditChangeProperty called an arbitrary number of times

As the title suggests, a property change can trigger multiple calls of PostEditChangeProperty. The function might run once or 3+ times. When creating a Blueprint subclass it also happened that with every Blueprint compile the number of calls incremented. I stopped at ~10 for 1 property change.

Steps to reproduce: New C++ project. New C++ Actor (or anyhting that has PostEditChangeProperty I guess). Override PostEditChangeProperty and just do a UE_LOG. If it behaves fine just try another class or project (I first noticed it when adjusting the character in the C++ FPS template).
edit: Forgot to mention to create a BP subclass and change the propperty in the editor. I assume this function is only called when making changes to the property in the editor as it is often enclosed in a WITH_EDITOR macro. Not sure on this one though.

I am not too confident when it comes to UE4 programming, therefore I am cautious when calling something a bug, but this issue seems so basic that I just don’t see what could be wrong on my end. I am still on 4.17.1 but the changelog of 4.17.2 didn’t mention anything relevant.

Still happening in 4.22

still 4.25

Still happening in 4.25

Same problem on UE5.0.3 How are we supposed to do to react only once on a BP setting change ?

Yep, same problem on 5.0.3, very annoying.

Have the same problem on 4.27.

I suppose that PostEditChangeProperty called for every actor placede in your level too(just like Construction script). So check number of calls in empty level.

Parent/child relationship might be another source for this behaviour, but I never check this.

Hmm weird. We use PostEditChangeProperty() extensively since probably Unreal 4.15 and have never seen this issue… :expressionless: