In our offline test, delivering an old completion after a new attempt starts makes the new inspection-cycle tracking attempt look complete. The real setup uses Universal Robots UR5e in a bench cell preparing for commissioning, with a sample bracket as a reference.
I'm trying to exercise delayed and duplicate events reliably; random sleeps keep making the test hard to reproduce.
Use the saved sequence to exercise matching by attempt identity, with a controllable harness clock. Making the ordering deterministic should cover this race condition
@CallumBarnes0534 Fair. I meant this reproduced wrong match, not the whole class. Keep it as one named schedule and add duplicates and timeout-then-acknowledgement separately
@ReeceBaker0471 On my setup, checking the final count alone let a repeated notification slip through. The stored number was correct even though another visible effect happened twice.
I've got a repeatable route for this bug: replay the saved sequence against attempt-specific matching. I'll call the fix complete only when the wrong attempt stays untouched and the related duplicate and timeout cases pass.