| Previous | Next |
| RTC_E_STATUS_CLIENT_REQUEST_TIMEOUT | RTC_E_STATUS_CLIENT_GONE |
RTC_E_STATUS_CLIENT_CONFLICT
Operational meaning: RTC_E_STATUS_CLIENT_CONFLICT
The operational meaning of this result is tied to a peer, proxy, registrar, or gateway returning a specific SIP response to the RTC transaction: the legacy RTC peer reported a conflict with current resource or transaction state.
The machine-readable identity of this result is 0x80EF0199 in the RTC SIP-status facility carrying status 409; the result identity matters because RTC uses separate facilities for API conditions, SIP final responses, and PINT service statuses.
The first useful check is to capture the exact method, target object, responder implementation, and any extension body explaining the conflict. The result must be separated from nearby conditions because 409 is exposed by the legacy RTC mapping but lacks the broad current SIP semantics of standard codes such as 481 or 486.
Verification workflow
- Start from
0x80EF0199and this result, then find the method/event pair that first exposed it. - To verify this, capture the exact method, target object, responder implementation, and any extension body explaining the conflict.
- Keep the analysis at the right boundary: 409 is exposed by the legacy RTC mapping but lacks the broad current
SIPsemantics of standard codes such as 481 or 486. - After you follow the deployed server contract, refresh object state, and avoid guessing from the
HTTPstatus with the same number, repeat the smallest reproducer rather than restarting the entire application environment.
Protocol and object state
| RTC area | SIP final response |
|---|---|
| Condition to prove | the legacy RTC peer reported a conflict with current resource or transaction state |
| Objects to correlate | SIP request method, client transaction, response status, dialog identifiers and method-specific headers |
| Safe corrective direction | follow the deployed server contract, refresh object state, and avoid guessing from the HTTP status with the same number |
Signals worth preserving
Do not wait for a generic failure notification to log it; preserve the API call or event producing it together with the RTC object and transaction state visible at that moment.
- Code-specific proof: capture the exact method, target object, responder implementation, and any extension body explaining the conflict.
- Correlation key: Call-ID/CSeq/tags.
- Protocol or object snapshot: status-specific headers.
- Last completed transition: retry or alternate-target decision.
- Expected output: request method and Request-URI.
Recovery and control flow
Recovery should be narrow: follow the deployed server contract, refresh object state, and avoid guessing from the HTTP status with the same number; while handling this result, do not let a higher layer simultaneously recreate the same session, registration, listener, or profile.
Example: A proprietary RTC service rejects a list update because its version conflicts with a newer server copy.
Actions that do not address this condition
- Do not retry every 4xx or 5xx response with the identical request.
- Do not show a reason phrase as trusted server identity or authorization evidence.
Do not confuse it with
For this HRESULT, 481 has defined dialog/transaction-not-found meaning; 409 is implementation-specific in this legacy context; the neighboring results below require different control-flow decisions.
RTC_E_STATUS_GLOBAL_BUSY_EVERYWHERE | the user is busy at every known location and further branching should stop |
|---|---|
RTC_E_STATUS_CLIENT_LENGTH_REQUIRED | the server requires an explicit Content-Length body framing it received |
RTC_E_STATUS_CLIENT_GONE | the addressed SIP resource was known previously but is no longer available and no forwarding Contact is supplied |
Technical references
Looking for a different code? Search another status or error code.