Our application crashed after sending a inspection-cycle execution request but before saving the result. Universal Robots UR5e may have continued; our local file still says pending. We're in a workshop fixture inspection cell, using a reference plate.
The startup helper resubmits pending jobs automatically. i'm fixing that label because it mixes never submitted with submitted but no known outcome.
@AnilBrooks0810 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.
@DavidBennett0780 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.
@DavidAdams0171 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.
Correct: persisting intent records the local decision to submit. Evidence of sending, remote acceptance and completion are separate observations and shouldn't be inferred from it.
Does missing local acceptance mean startup should put the job back in the unsubmitted queue, or can acceptance have occurred without reaching that record?
@KaiBennett0715 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.
@AnilBrooks0810 On my ledger, we simulated crashes before send but forgot the gap after remote acceptance. All the restart tests passed for the easy half.