Our startup helper retries more than it knows - part inspection

ReeceAdams0123 · 29 Aug 2026, 00:37 UTC

Reply to discussion
RE
ReeceAdams0123
Our application crashed after sending a part inspection request but before saving the result. Fairino FR10 may have continued; our local file still says pending. We're in a small production inspection area, 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.

12 replies

LI
LiamChen1186
Replying to ReeceAdams0123

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

22 points
RE
ReeceAdams0123
Replying to LiamChen1186

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.

3 points
LI
LiamChen1186
Replying to ReeceAdams0123

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

8 points
IS
IsaacBaker0520
Replying to LiamChen1186

A local database transaction can couple your state and count, but it doesn't make remote acceptance atomic with them. Your recovery claim needs that limitation.

-4 points
LI
LiamChen1186
Replying to IsaacBaker0520

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

17 points
RE
ReeceAdams0123
Replying to LiamChen1186

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

19 points
LI
LiamChen1186
Replying to ReeceAdams0123

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

21 points
JA
JasperBrown0899
Replying to LiamChen1186

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

22 points
LI
LiamChen1186
Replying to JasperBrown0899

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

18 points
AM
AmyBrooks0815
Replying to LiamChen1186

On my ledger, we simulated crashes before send but forgot the gap after remote acceptance. All the restart tests passed for the easy half

2 points
RE
ReeceAdams0123
Replying to AmyBrooks0815

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.

6 points
LI
LiamChen1186
Replying to ReeceAdams0123

That classification follows the evidence, and the replay condition keeps the startup-fix claim appropriately limited

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