Quick answer: Unreal Blueprint event dispatcher calling into a destroyed actor? Bindings are not automatically unbound on Destroy - call Unbind All Events in EndPlay or use weak bindings.

Boss dies, fires its OnDefeated dispatcher. Listener was an old UI widget already destroyed. Crash.

Unbind in EndPlay

In the listening actor's EndPlay, call Unbind Event from On Defeated. Cleanup follows lifetime.

Or use Bind Event with WeakObjectPtr

C++ side: FScriptDelegate with WeakObjectPtr unbinds when the target is GC'd. Less safe in Blueprint without explicit cleanup.

Audit with the reference viewer

Right-click the dispatcher's owning actor > Reference Viewer. Strong refs show as solid lines; bindings to destroyed objects appear as dangling.

“Event dispatchers are reference-holding subscriptions. Lifetimes must align.”

For UI widgets that listen to gameplay events, prefer 'pull' over 'push'. Have the widget tick and query state; lifetime mismatches stop mattering.