A missing result isn't proof the job never started (part inspection)

CallumAdams0099 · 7 May 2026, 17:20 UTC

Reply to discussion
CA
CallumAdams0099
I'm fixing our startup bookkeeping after a crash between sending a part inspection request and saving its result. The setup uses Fairino FR5 in a workshop fixture inspection cell, with an inspection coupon. 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.

16 replies

PA
PavelBrooks0788
Replying to CallumAdams0099

@CallumAdams0099 What is the last durable entry for this attempt? Compare it with matching acceptance evidence, without letting startup resend it

17 points
CA
CallumAdams0099
Replying to PavelBrooks0788

@PavelBrooks0788 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.

15 points
PA
PavelBrooks0788
Replying to CallumAdams0099

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

25 points
TH
ThomasBrooks0799
Replying to PavelBrooks0788

@PavelBrooks0788 Atomic locally. That transaction can't include the controller accepting a request. The gap that caused this still exists.

8 points
PA
PavelBrooks0788
Replying to ThomasBrooks0799

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

12 points
CA
CallumAdams0099
Replying to PavelBrooks0788

@PavelBrooks0788 So persist intent first, but don't treat intent as proof of sending? That's where our pending label got stretched beyond usefulness.

9 points
PA
PavelBrooks0788
Replying to CallumAdams0099

Yes. Intent is durable local evidence of a plan. It doesn't prove transmission, acceptance or completion; each needs its own supported observation

7 points
DA
DanielAli0217
Replying to PavelBrooks0788

If there's no acceptance saved locally, why not call it unsubmitted? Isn't that the only record startup can use?

22 points
PA
PavelBrooks0788
Replying to DanielAli0217

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

12 points
PR
PriyaBennett0742
Replying to PavelBrooks0788

My own test suite covered interruption before transmission but omitted interruption after remote acceptance and before local persistence, leaving the difficult recovery case untested.

8 points
CA
CallumAdams0099
Replying to PriyaBennett0742

Our offline replay will interrupt between remote acceptance and local acknowledgement persistence, then verify that startup preserves uncertainty without issuing another request.

13 points
TH
ThomasBrooks0799
Replying to CallumAdams0099

And what evidence ends uncertainty? A matching acceptance still doesn't tell you the inspection finished.

20 points
CA
CallumAdams0099
Replying to ThomasBrooks0799

I'll require evidence of completion tied to the attempt before recording it as complete. The acceptance we've only establishes that it wasn't simply unsubmitted.

19 points
PA
PavelBrooks0788
Replying to CallumAdams0099

@CallumAdams0099 Attach the reconciliation source when you update the result. Preserve the interruption in history so the finished record still explains how you established it

23 points
CA
CallumAdams0099
Replying to PavelBrooks0788

@PavelBrooks0788 I've kept this accepted-but-uncertain attempt out of our resend queue. The final outcome and the broader startup fix are still open.

13 points
PA
PavelBrooks0788
Replying to CallumAdams0099

@CallumAdams0099 That's a concrete partial result while leaving the final outcome and wider implementation open

13 points

Add to the discussion

Welcome to Application Robot

Everyone can read the forum. Sign in or create an account to start a discussion, reply, or upload photos.

Forgot your password?

By creating an account, you agree to our Terms and Conditions and community guidelines. Read our Privacy Policy for how your information is handled.