Untangling never submitted from submitted with no outcome - inspection-cycle execution

OscarAli0184 · 3 May 2026, 07:40 UTC

Reply to discussion
OS
OscarAli0184
Our application crashed after sending a inspection-cycle execution request but before saving the result. Fairino FR5 may have continued; our local file still says pending. We're in a PLC-coordinated sample inspection station, 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.

20 replies

JA
JackBennett0776
Replying to OscarAli0184

@OscarAli0184 Inspect the last persisted record for the attempt and any acceptance evidence carrying the same identity, keeping it out of automatic resubmission while you compare them.

14 points
OS
OscarAli0184
Replying to JackBennett0776

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.

-2 points
JA
JackBennett0776
Replying to OscarAli0184

@OscarAli0184 Keep it uncertain and reconcile by identity. Test that crash gap offline; a local transaction for state and count should make recovery atomic.

12 points
BE
BethBarnes0585
Replying to JackBennett0776

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

-2 points
JA
JackBennett0776
Replying to BethBarnes0585

@BethBarnes0585 Exactly; my wording was too broad. The transaction protects local accounting. Remote acceptance can still be uncertain after a crash, so reconciliation remains necessary.

8 points
OS
OscarAli0184
Replying to JackBennett0776

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

15 points
JA
JackBennett0776
Replying to OscarAli0184

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
BE
BethAli0237
Replying to JackBennett0776

Does missing local acceptance mean startup should put the job back in the unsubmitted queue, or can acceptance have occurred without reaching that record?

9 points
JA
JackBennett0776
Replying to BethAli0237

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

10 points
HE
HenryBaker0438
Replying to JackBennett0776

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

14 points
OS
OscarAli0184
Replying to HenryBaker0438

I'll put our replay break exactly in that gap. Startup should retain uncertainty and emit no replacement request.

5 points
BE
BethBarnes0585
Replying to OscarAli0184

Which evidence is sufficient to resolve the outcome? Matching acceptance establishes that the request was accepted, but not that inspection completed.

14 points
OS
OscarAli0184
Replying to BethBarnes0585

For completion, matching completion evidence. Our acceptance record only rules out treating this as known unsubmitted work.

4 points
JA
JackBennett0776
Replying to OscarAli0184

@OscarAli0184 When matching evidence resolves the result, retain its source with the update and keep the interruption history, allowing someone else to follow the reconciliation.

12 points
BE
BethAli0237
Replying to JackBennett0776

@JackBennett0776 Do you overwrite pending, then? Or does every state need to stay forever in the main screen?

8 points
JA
JackBennett0776
Replying to BethAli0237

@BethAli0237 The current view can change. Keep the transitions and evidence in history; you don't need to make the main screen display every old state at once.

14 points
HE
HenryBaker0438
Replying to JackBennett0776

@JackBennett0776 My setup showed uncertain jobs apart from the unsubmitted queue. That stopped people treating both lists as a pile of work waiting to be launched.

13 points
OS
OscarAli0184
Replying to HenryBaker0438

@HenryBaker0438 I'll make that distinction in our display too. Pending really was a label for everything we hadn't bothered to name.

4 points
OS
OscarAli0184
Replying to OscarAli0184

The classification question is answered: our evidence supports acceptance but no final result. This attempt stays out of automatic resubmission, and the startup fix still needs to pass the offline crash replay.

14 points
JA
JackBennett0776
Replying to OscarAli0184

@OscarAli0184 You've resolved where the attempt belongs without claiming a completion you don't have. The startup verification remains clear.

9 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.