Operation disputed
Identifiers
Section titled “Identifiers”| Field | Value |
|---|---|
| Type URI | https://echo.labstack.com/pro/problems/operation-disputed |
| Code | operation_disputed |
| HTTP status | 409 |
| HTTP status | English title |
|---|---|
| 409 | Conflict |
When it occurs
Section titled “When it occurs”Recorded results disagree about whether the operation applied. For example, a provider later reported success for an operation recorded as not applied. Execution marks a duplicate risk and never replays such an operation.
Client handling
Section titled “Client handling”Do not retry automatically, and do not use a new key. Report operation_ref to an authorized operator, who must resolve the dispute.
Example response
Section titled “Example response”If your application installs a custom handler, the body may differ.
HTTP/1.1 409 ConflictContent-Type: application/problem+jsonCache-Control: no-store
{ "code": "operation_disputed", "operation_ref": "AAAAAAAAAAAAAAAAAAAAAAAA", "operation_state": "uncertain", "safe_new_key": false, "status": 409, "title": "Conflict", "type": "https://echo.labstack.com/pro/problems/operation-disputed"}Server correction
Section titled “Server correction”An authorized operator must resolve the contradictory provider and operator records. Do not use a new key while duplicate risk remains.
Response fields
Section titled “Response fields”Execution middleware
Section titled “Execution middleware”type(string, always): The exact type URI above.title(string, always): The HTTP status text.status(integer, always): The HTTP status of the response.code(string, always): The stable code above.operation_ref(string, always): An opaque reference to the operation. It is set only afterReplayCheckallows the request, and is empty when no operation was found. Use it to look up the operation; it does not grant access.operation_state(string, always):started,uncertain,completedorfailed; empty when no operation was found.safe_new_key(boolean, always):trueonly when the client may retry with a new key. It is alwaysfalsewhenoperation_refandoperation_stateare empty.
Headers:
Cache-Control(always):no-storeon every execution problem.
Notes:
- Execution removes any
Idempotent-Replayedheader from problem responses.
Related behavior
Section titled “Related behavior”See execution for operation state and replay rules. Check the provider’s records before recovery. A timeout does not prove that an effect did not occur.