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.