Play Montage node getting destroyed before animation finish

As the title says, when I’m using the Play Montage node (the one which has execution pins), sometimes the Ended/Interrupted/Completed pins don’t get executed.
After a long debugging session, I’ve found out it is because the UPlayMontageCallbackProxy gets destroyed before the animation is finished by the garbage collector. Sometimes it just takes seconds, sometimes minutes, but putting a breakpoint in UPlayMontageCallbackProxy::BeginDestroy showed me that the object is destroyed. Checked the MontageInstanceID, and indeed the montage is still active and running, but somehow the Proxy is marked as unreachable.

Any idea why, and how to fix it?
Version is 4.23