I'm fixing our startup bookkeeping after a crash between sending a inspection-cycle execution request and saving its result.
The setup uses Universal Robots UR5e in a workshop fixture inspection cell, with a fixture-mounted bracket.
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.
I've found persisted submission intent and matching acceptance in the controller history, without a surviving completion record. This attempt is excluded from our automatic resend queue.
@AaronBarnes0523 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.
@LucyBaker0480 Should persisted intent mean only that submission was planned, without claiming transmission occurred? Our existing pending state has been hiding that distinction.
@DavidBaker0519 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.
@NathanBrown0895 The remote side may accept the request before the application persists its acknowledgement. Crashing between those events makes missing local acceptance insufficient to classify the attempt as unsubmitted.
@LucyBaker0480 My own test suite covered interruption before transmission but omitted interruption after remote acceptance and before local persistence, leaving the difficult recovery case untested.
@CallumAllen0273 I've settled this attempt's classification: accepted with no confirmed completion, so it belongs in reconciliation, not automatic resubmission.
I'll call the startup fix complete only when the offline crash replay preserves that distinction.