Our application crashed after sending the request (inspection-cycle execution)

DavidBaker0519 · 16 May 2026, 07:44 UTC

Reply to discussion
DA
DavidBaker0519
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.

12 replies

LU
LucyBaker0480
Replying to DavidBaker0519

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

16 points
DA
DavidBaker0519
Replying to LucyBaker0480

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
LU
LucyBaker0480
Replying to DavidBaker0519

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
AA
AaronBarnes0523
Replying to LucyBaker0480

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

5 points
LU
LucyBaker0480
Replying to AaronBarnes0523

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

6 points
DA
DavidBaker0519
Replying to LucyBaker0480

@LucyBaker0480 Should persisted intent mean only that submission was planned, without claiming transmission occurred? Our existing pending state has been hiding that distinction.

15 points
LU
LucyBaker0480
Replying to DavidBaker0519

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

5 points
NA
NathanBrown0895
Replying to LucyBaker0480

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

10 points
LU
LucyBaker0480
Replying to NathanBrown0895

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

5 points
CA
CallumAllen0273
Replying to LucyBaker0480

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

19 points
DA
DavidBaker0519
Replying to CallumAllen0273

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

15 points
LU
LucyBaker0480
Replying to DavidBaker0519

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

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