Quick answer: Unreal Niagara pool-released systems losing their event bindings on reacquire? Bindings cleared on Deactivate by default - rebind in OnActivate.

Trail emitter from pool: subsequent uses don't fire OnCollision. Initial use works.

Rebind in OnActivate

Subscribe to OnCollision delegate when system activates from pool. Skip rebind on Deactivate.

Or use persistent bindings

Bind at component creation; survive pool lifecycle. Simpler; works if bindings don't change per use.

Audit pool callbacks

Each callback type tested for pool reuse. Bindings are the common loss.

“Pool reuse skips construction. Construction-time bindings need explicit reinit.”

Build a SpawnAndConfigureVFX helper that handles the bindings. Reusable; pool-safe.

Related reading