Skip to content

Operation abandoned

FieldValue
Type URIhttps://echo.labstack.com/pro/problems/operation-abandoned
Codeoperation_abandoned
HTTP status409
HTTP statusEnglish title
409Conflict

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.

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.

If your application installs a custom handler, the body may differ.

HTTP/1.1 409 Conflict
Content-Type: application/problem+json
Cache-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"
}

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.

  • 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 after ReplayCheck allows 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, completed or failed; empty when no operation was found.
  • safe_new_key (boolean, always): true only when the client may retry with a new key. It is always false when operation_ref and operation_state are empty.

Headers:

  • Cache-Control (always): no-store on every execution problem.

Notes:

  • Execution removes any Idempotent-Replayed header from problem responses.

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.