Quick answer: Unity ParticleSystem with Stop Action = Destroy disappearing mid-trigger? The Trigger module's callback fires during destruction - move trigger handling to a parent object that outlives the particles.

Trigger-based collision particles call SetTrigger on the wrong frame because the particle is mid-destroy.

Set Stop Action to Disable

Disable doesn't destroy the GameObject; the trigger callback still has a valid this next frame.

Move logic to parent

The particle system holds VFX; the parent holds the gameplay callback. Decouple ownership and the destroy-during-callback race goes away.

Use OnParticleCollision sparingly

For frequent collisions, the callback is per-particle. Replace with a single physics overlap query if you have hundreds of particles.

“Particle systems with gameplay callbacks need careful lifetime management.”

For one-shot VFX, prefer pooled prefabs over Destroy. The pool absorbs lifetime concerns and you stop paying allocation cost.