Operation uncertain
Identifiers
Section titled “Identifiers”| Field | Value |
|---|---|
| Type URI | https://echo.labstack.com/pro/problems/operation-uncertain |
| Code | operation_uncertain |
| HTTP status | 409 |
| HTTP status | English title |
|---|---|
| 409 | Conflict |
When it occurs
Section titled “When it occurs”The result of the operation is unknown. An external send started, but its lease expired before execution recorded the outcome. Or the handler reported the outcome as uncertain. The effect may or may not have happened.
Client handling
Section titled “Client handling”Do not retry automatically, with either the same key or a new one. Report operation_ref to an authorized operator, who can reconcile or resolve the operation. The reference is shown only after the request passed the operation’s replay authorization.
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_uncertain", "operation_ref": "AAAAAAAAAAAAAAAAAAAAAAAA", "operation_state": "uncertain", "safe_new_key": false, "status": 409, "title": "Conflict", "type": "https://echo.labstack.com/pro/problems/operation-uncertain"}Server correction
Section titled “Server correction”For each send that may have applied, check the provider’s records or record a reviewed resolution. Neither a timeout nor a missing reply proves that no send happened.
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.