Ribbon trail error intermittently when enabled

So, I have a scene with a few particle effects floating around (scripted with blueprints). When the player comes into contact with the group, the particles fly towards the player actor, leaving ribbon trails behind them, until the come into contact with the player, in which case the trail emitter is disabled, and the particles set to respawn. The ribbon trails use a separate emitter inside the main particle effect, and the emitter is enabled and disabled using the Set Emitter Enable node. On collection, the entire particle system is set to inactive until it is respawned later.

This all works, most of the time. However, occasionally, and intermittently (such that I can’t reliably reproduce it, only with about a 1/15 chance), the particles will, instead of flying towards the player, zoom off in random directions, and produce the following warnings to the output log:

LogParticles:Warning: RIBBON   : FillReplayData failed.
LogParticles:Warning:     IndexCount (1126187536) exceeds allowed value (65535).
LogParticles:Warning:     ActiveParticleCount = 4.
LogParticles:Warning:     TriangleCount = 1126187534.
LogParticles:Warning:     TrailCount = 1.
LogParticles:Warning:     /Game/Blueprints/Particles.Particles

I’m not hugely familiar with the particle system yet, but this looks suspiciously like some kind of underflow on the ribbon mesh triangle index, and I’m not sure why this would happen.

I think I’ve found a way around this. It seemed to occur when the trails lasted for too long. My method of making the particles move towards the player was to gradually lerp between them, but if the player is moving, it is possible to remain ahead of the particles (because they’re lerping towards the player’s old position). This error appeared to occur after the trails hit 1 on the lerp alpha and had still not been collected by the player. To counter this, I simply made them be automatically collected when the lerp counter hits 1, rather than waiting to collide with the player. This seems to work (though I can’t be sure), but I’d be keen to know why this happened in the first place.