What does HRESULT 0x80EE0001 (RTC_E_SIP_STREAM_PRESENT) mean?

 
Previous Next
RTC_E_SIP_CODECS_DO_NOT_MATCH RTC_E_SIP_STREAM_NOT_PRESENT

RTC_E_SIP_STREAM_PRESENT

Operational meaning: RTC_E_SIP_STREAM_PRESENT

RTC_E_SIP_STREAM_PRESENT should be investigated at the point where RTC handles parsing, constructing, or reconciling SIP signaling and the SDP offer/answer carried by it, and the condition to prove for RTC_E_SIP_STREAM_PRESENT is code attempted to start a media stream already represented in the current RTC session state.

RTC_E_SIP_STREAM_PRESENT is represented as 0x80EE0001 in the RTC interface facility 0xEE; for RTC_E_SIP_STREAM_PRESENT, record the symbolic name alongside the unsigned hexadecimal value; a decimal exception alone is poor evidence for RTC protocol diagnosis.

A defensible diagnosis of RTC_E_SIP_STREAM_PRESENT requires you to record media type, direction, stream ID, and the completion event from the earlier AddStream/start request; in the RTC_E_SIP_STREAM_PRESENT case, an existing stream is a state/ownership result, not evidence that media packets are flowing correctly.

Signals worth preserving

Capture the first RTC_E_SIP_STREAM_PRESENT result before retry, reconnect, profile re-enable, or teardown changes the evidence; associate RTC_E_SIP_STREAM_PRESENT with one RTC object generation and one transaction or media transition.

  • Code-specific proof for RTC_E_SIP_STREAM_PRESENT: record media type, direction, stream ID, and the completion event from the earlier AddStream/start request.
  • Correlation key for RTC_E_SIP_STREAM_PRESENT: SDP o= version and c= address.
  • Protocol or object snapshot for RTC_E_SIP_STREAM_PRESENT: each m= line and codec mapping.
  • Last completed transition for RTC_E_SIP_STREAM_PRESENT: message direction and transport.
  • Expected output for RTC_E_SIP_STREAM_PRESENT: start-line plus header names.

For privacy-safe analysis of RTC_E_SIP_STREAM_PRESENT, preserve protocol structure rather than payload content; for RTC_E_SIP_STREAM_PRESENT, authentication values, complete addresses, buddy lists, and bodies should be redacted or hashed under policy.

Protocol and object boundary

RTC areaSIP message and SDP negotiation boundary
Condition to provecode attempted to start a media stream already represented in the current RTC session state
Objects to correlateSIP start-line and headers, message body framing, SDP session and media sections, offer/answer generation
Safe corrective directionreuse or modify the existing stream and serialize further media transitions

Interpreting RTC_E_SIP_STREAM_PRESENT requires both of these facts: SIP transaction state and media negotiation are separate: a syntactically valid SIP request can still contain absent or unacceptable SDP; also, the RTC_E_SIP_STREAM_PRESENT branch assumes that An SDP update must be checked against the previous offer/answer state, not merely parsed as a standalone text document.

Verification workflow

  1. Start from 0x80EE0001 and RTC_E_SIP_STREAM_PRESENT, then find the method/event pair that first exposed it.
  2. For RTC_E_SIP_STREAM_PRESENT, check whether the failure was local before transmission, produced during RTC state validation, or mapped from a remote response.
  3. For RTC_E_SIP_STREAM_PRESENT, the proof step is to record media type, direction, stream ID, and the completion event from the earlier AddStream/start request.
  4. For RTC_E_SIP_STREAM_PRESENT, keep the analysis at the right boundary: an existing stream is a state/ownership result, not evidence that media packets are flowing correctly.
  5. For RTC_E_SIP_STREAM_PRESENT, after you reuse or modify the existing stream and serialize further media transitions, repeat the smallest reproducer rather than restarting the entire application environment.

The RTC_E_SIP_STREAM_PRESENT diagnosis is strongest when object state and protocol trace share timestamps and transaction identifiers; when diagnosing RTC_E_SIP_STREAM_PRESENT, avoid treating packet capture and HRESULT logging as substitutes for one another.

Do not confuse it with

RTC_E_SIP_STREAM_PRESENT should not be grouped with every value from the same facility. this result is tied to the condition “code attempted to start a media stream already represented in the current RTC session state”; preserve that producing boundary before choosing recovery; the RTC_E_SIP_STREAM_PRESENT table shows nearby alternatives.

RTC_E_SDP_CONNECTION_ADDRan SDP media description has no usable connection address at session or media level
RTC_E_SDP_MULTICASTthe SDP describes a multicast connection that the RTC Client API path does not support
RTC_E_SIP_NO_STREAMthe operation requires at least one active media stream but the session currently has none

The comparison prevents RTC_E_SIP_STREAM_PRESENT from being flattened into a subsystem-wide error bucket with unsafe generic remediation.

Recovery and control flow

Recovery from RTC_E_SIP_STREAM_PRESENT should be narrow: reuse or modify the existing stream and serialize further media transitions; while handling RTC_E_SIP_STREAM_PRESENT, do not let a higher layer simultaneously recreate the same session, registration, listener, or profile.

Before retrying RTC_E_SIP_STREAM_PRESENT, classify the previous operation as definitely failed, definitely completed, or remotely uncertain; for RTC_E_SIP_STREAM_PRESENT, that distinction prevents duplicate dialogs, bindings, transfers, or roaming mutations.

Example for RTC_E_SIP_STREAM_PRESENT: Two callbacks both react to the same call event and attempt to start the audio stream.

Actions that do not address this condition

  • A RTC_E_SIP_STREAM_PRESENT investigation should not do not log credentials or an unredacted SDP body from production calls.
  • For RTC_E_SIP_STREAM_PRESENT, also do not do not repair malformed signaling by silently deleting unknown headers or media sections.
  • Do not translate RTC_E_SIP_STREAM_PRESENT into a broad “connection failed” label before preserving the RTC symbol and producing phase.

Verification after a fix

For RTC_E_SIP_STREAM_PRESENT, keep two tests: one that intentionally produces “code attempted to start a media stream already represented in the current RTC session state”, and one that applies the narrow correction; for RTC_E_SIP_STREAM_PRESENT, check the callback sequence, 0x80EE0001, final session/profile state, and absence of leaked listeners, dialogs, streams, or registrations.

Technical references


Looking for a different code? Search another status or error code.