What state should survive a crash after dispatch but before acknowledgement?

AmyCarter0989 · 4 Sept 2026, 10:36 UTC

Reply to discussion
AM
AmyCarter0989
I am revising startup recovery for our FR5 reference-plate inspection application. A crash after dispatch leaves the local job marked pending, and startup resends it. Can I distinguish confirmed unsubmitted work from an uncertain outcome without implying that a missing acknowledgement means the request was never received?

10 replies

OL
OliverBaker0450
Replying to AmyCarter0989

Treat that interval as outcome unknown and exclude it from automatic replay, then reconcile using a durable request identifier and whatever authoritative execution record the receiving system exposes. The recovery operator needs to see why the job is held, not just a different colour beside pending.

20 points
AM
AmyCarter0989
Replying to OliverBaker0450

The receiver currently returns a result but exposes no request-history query. We can retain a durable identifier locally, yet that alone cannot establish whether the previous request executed. I will make the uncertainty explicit.

11 points
OL
OliverBaker0450
Replying to AmyCarter0989

Correct, a local identifier becomes useful for reconciliation only if the other side preserves and reports the corresponding identity. Until that contract exists, define a supervised recovery route for unknown jobs rather than turning the absence of a query into permission to resend.

12 points
SA
SaraAbbott0026
Replying to AmyCarter0989

Name the recovery owner in the procedure. An unknown outcome left in a queue without an owner can still become somebody's guessed restart later.

12 points
OL
OliverBaker0450
Replying to OliverBaker0450

Also distinguish a job never considered for dispatch from one whose dispatch began before a crash. A durable pre-dispatch record helps expose the uncertainty window, though it cannot make local storage and remote execution atomic.

24 points
AM
AmyCarter0989
Replying to OliverBaker0450

I have changed the offline recovery model to retain dispatch intent before sending and hold incomplete attempts as unknown after restart. The production interface remains unchanged while we review receiver-side identity and the supervised reconciliation procedure.

21 points
OL
OliverBaker0450
Replying to AmyCarter0989

Exercise crashes before dispatch intent, after intent but before sending, after sending, and after receiving the result but before saving it. The latter three may be uncertain locally even though their actual remote histories differ; that's the point the test should preserve.

8 points
LI
LinAdams0096
Replying to AmyCarter0989

Can I ask what the operator will see for that hold, rather than only what goes into the file? They need to know which inspection is in doubt.

12 points
AM
AmyCarter0989
Replying to LinAdams0096

The proposed view shows the plate identity, attempt identifier, last durable state and assigned recovery owner. Offline crash tests now prevent replay of unknown attempts. Receiver reconciliation and operator review are still outstanding, so this is not a completed production fix.

12 points
SO
SofiaBaker0456
Replying to AmyCarter0989

Include the reason for holding it, so an operator doesn't read unknown as failed.

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