Operation abandoned
Identifiers
Section titled “Identifiers”| Field | Value |
|---|---|
| Type URI | https://echo.labstack.com/pro/problems/operation-abandoned |
| Code | operation_abandoned |
| HTTP status | 409 |
| HTTP status | English title |
|---|---|
| 409 | Conflict |
When it occurs
Section titled “When it occurs”An operator closed the operation as abandoned, or declared it not applied without full proof. This is the operator’s statement; the effect may still have happened.
Client handling
Section titled “Client handling”The operator’s decision does not allow a retry. Do not retry automatically, and follow the operator’s instructions. A new key is safe only when safe_new_key is true.
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_abandoned", "operation_ref": "AAAAAAAAAAAAAAAAAAAAAAAA", "operation_state": "uncertain", "safe_new_key": false, "status": 409, "title": "Conflict", "type": "https://echo.labstack.com/pro/problems/operation-abandoned"}Server correction
Section titled “Server correction”Keep the operation and provider records available. Abandoning an operation does not prove that no send happened or allow a new key. Follow the recorded recovery decision.
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.