Separate transport from business outcome
A connection timeout means the application did not receive a complete response in time. It does not establish that the provider rejected the order. Use an internal unresolved state instead of marking the purchase failed and immediately creating another request.
Preserve reconciliation data
Keep the internal request reference, service, target, quantity, and submission timestamp. Avoid recording secrets in logs. Use the provider's documented lookup capability, if available, to identify a matching accepted order and attach its identifier.
Resolve the state explicitly
Move the request to accepted when a provider order is confirmed, or to not accepted when reliable evidence establishes absence. If neither can be determined, route it for review. Do not hide unresolved commitments in a generic error count.
Decision checklist
| Decision | What to check |
|---|---|
| Transport | Response failure |
| Business | Acceptance still unknown |
| Resolution | Evidence-backed final state |
Worked example
A hypothetical application submits a $6 purchase and loses the response. Marking it unresolved preserves a possible $6 commitment. Marking it failed and retrying three times could create up to three additional purchases if each request is accepted.
Example figures explain the decision; they are not current prices or promised results.