| Previous | Next |
| RTC_E_STATUS_SERVER_BAD_GATEWAY | RTC_E_STATUS_SERVER_SERVER_TIMEOUT |
RTC_E_STATUS_SERVER_SERVICE_UNAVAILABLE
What the RTC value marks: RTC_E_STATUS_SERVER_SERVICE_UNAVAILABLE
This code belongs to a peer, proxy, registrar, or gateway returning a specific SIP response to the RTC transaction: the server is temporarily unable to process the request because of overload or maintenance. Treating it as a generic RTC failure loses the state needed to choose a safe next action.
For correlation, retain 0x80EF01F7 in the RTC SIP-status facility carrying status 503 together with this result; generic HRESULT text can otherwise hide the protocol family and the exact RTC branch.
The quickest way to localize this result is to capture Retry-After, server identity, load/maintenance state, and alternative route availability; the important boundary is that Service Unavailable is normally temporary; 501 is a persistent implementation capability result.
Protocol and object state
| RTC area | SIP final response |
|---|---|
| Objects to correlate | SIP request method, client transaction, response status, dialog identifiers and method-specific headers |
| Condition to prove | the server is temporarily unable to process the request because of overload or maintenance |
| Safe corrective direction | back off according to Retry-After and route policy, adding jitter and a retry limit |
The facility code preserves the SIP status number; diagnosis should start with the method and responding hop rather than treating every value as a local COM failure. Some responses invite a modified request or authenticated retry, while others are terminal for the current target or even global for the addressed user.
Evidence that separates the cause
- Code-specific proof: capture Retry-After, server identity, load/maintenance state, and alternative route availability.
- Identity and target: status-specific headers.
- State at production: retry or alternate-target decision.
- Timing and ordering: request method and Request-URI.
A safe diagnostic sequence
- Record it and
0x80EF01F7at the first RTC method or event that returns it. - Prove the condition by ensuring the trace can capture Retry-After, server identity, load/maintenance state, and alternative route availability.
- Apply one controlled change: back off according to Retry-After and route policy, adding jitter and a retry limit; then verify the result return value and resulting RTC state.
How to handle the result
The appropriate response to it is not a blanket reconnect. Instead, back off according to Retry-After and route policy, adding jitter and a retry limit, while preserving ownership of cleanup and any bounded retry.
Example: A registrar undergoing maintenance returns 503 with a retry interval.
Actions that do not address this condition
- Do not show a reason phrase as trusted server identity or authorization evidence.
- Do not retry every 4xx or 5xx response with the identical request.
Related RTC results
Comparison point: 500 Reports an internal failure for this request; 503 explicitly indicates temporary unavailability.
RTC_E_STATUS_CLIENT_LENGTH_REQUIRED | the server requires an explicit Content-Length body framing it received |
|---|---|
RTC_E_STATUS_SERVER_NOT_IMPLEMENTED | the server does not implement the SIP method needed |
RTC_E_STATUS_SERVER_VERSION_NOT_SUPPORTED | the server does not support the SIP protocol version in the request |
Technical references
Looking for a different code? Search another status or error code.