| Previous | Next |
| RTC_E_SIP_TIMEOUT | RTC_E_SIP_INVITE_TRANSACTION_PENDING |
RTC_E_SDP_FAILED_TO_BUILD
What RTC_E_SDP_FAILED_TO_BUILD means in RTC
This HRESULT is emitted for a defined RTC state rather than an unspecified communications problem; that state is the RTC stack could not serialize the current media/session state into an SDP offer or answer.
At the HRESULT layer, this result appears as 0x80EE000D in the RTC interface facility 0xEE; preserving the facility and symbol prevents it from being grouped incorrectly with unrelated networking or media errors.
A defensible diagnosis of this result requires you to record requested media types, terminal formats, port mappings, addresses, and security requirements before serialization; in the case, generation failure occurs locally before a valid SDP body exists; it is not a peer rejection.
Minimum incident record
- Code-specific proof: record requested media types, terminal formats, port mappings, addresses, and security requirements before serialization.
- Owning object:
SDPo= version and c= address. - Wire evidence: each m= line and codec mapping.
- Lifecycle state: message direction and transport.
Protocol and object state
| RTC area | SIP message and SDP negotiation |
|---|---|
| Objects to correlate | SIP start-line and headers, message body framing, SDP session and media sections, offer/answer generation |
| Condition to prove | the RTC stack could not serialize the current media/session state into an SDP offer or answer |
| Safe corrective direction | correct incomplete or contradictory local media state and rebuild once |
SIP transaction state and media negotiation are separate: a syntactically valid SIP request can still contain absent or unacceptable SDP. An SDP update must be checked against the previous offer/answer state, not merely parsed as a standalone text document.
Correct application response
The appropriate response to it is not a blanket reconnect. Instead, correct incomplete or contradictory local media state and rebuild once, while preserving ownership of cleanup and any bounded retry.
Example: The application requests secure audio but supplies no compatible terminal or mapped media address.
How to prove the condition
- Collect enough evidence to record requested media types, terminal formats, port mappings, addresses, and security requirements before serialization.
- Test the competing explanation explicitly, because generation failure occurs locally before a valid
SDPbody exists; it is not a peer rejection. - Apply the targeted fix — correct incomplete or contradictory local media state and rebuild once — and validate both protocol completion and object cleanup.
Nearby failure modes
RTC_E_SIP_NO_STREAM | the operation requires at least one active media stream but the session currently has none |
|---|---|
RTC_E_SDP_UPDATE_FAILED | a new SDP description is incompatible with the prior negotiated offer/answer state |
RTC_E_SIP_UDP_SIZE_EXCEEDED | the serialized SIP datagram exceeds the size accepted by the RTC UDP transport path |
Actions that do not address this condition
- Do not repair malformed signaling by silently deleting unknown headers or media sections.
- Do not log credentials or an unredacted SDP body from production calls.
Technical references
Looking for a different code? Search another status or error code.