I'm fixing our startup bookkeeping after a crash between sending a sample acceptance checking request and saving its result. The setup uses Universal Robots UR5e in a bench cell recording per-item inspection jobs, with a reference plate. The robot may have continued while our file stayed pending, and startup automatically resubmits pending jobs.
That state currently covers both unsubmitted and uncertain work
Our last durable entry is submission intent. Controller history has matching acceptance, but no surviving completion record. I've kept it out of the resend queue
@SaraAbbott0026 Preserve the uncertain attempt and use matching evidence for reconciliation. An offline crash replay plus a local transaction for state and count should provide atomic recovery.
You're right to distinguish those. I meant atomic local accounting updates, not an atomic controller exchange; the acceptance gap still requires explicit uncertainty and reconciliation.
Acceptance can happen before your local save. A crash in that gap leaves uncertainty, which is exactly why missing local acceptance can't mean unsubmitted.
When matching evidence resolves the result, retain its source with the update and keep the interruption history, allowing someone else to follow the reconciliation.