Site icon EfmSoft

What does HRESULT 0x80EE0077 (RTC_E_ANOTHER_MEDIA_SESSION_ACTIVE) mean?

 
Previous Next
RTC_E_MEDIA_SESSION_IN_HOLD RTC_E_MAX_REDIRECTS

RTC_E_ANOTHER_MEDIA_SESSION_ACTIVE

What the RTC value marks: RTC_E_ANOTHER_MEDIA_SESSION_ACTIVE

In the RTC Client API, this result separates one failure or completion path from its neighbors because it denotes RTC permits only one active media session for the relevant resource and another session currently owns it.

At the HRESULT layer, this result appears as 0x80EE0077 in the RTC interface facility 0xEE; for this HRESULT, preserving the facility and symbol prevents it from being grouped incorrectly with unrelated networking or media errors.

To establish this result, identify both sessions, terminals/ports, active-state owner, and release transition; for this HRESULT, this matters because resource exclusivity differs from a duplicate participant within one session.

A safe diagnostic sequence

  1. At the source of this result, preserve the HRESULT, method or callback, timestamp, thread/task correlation, and object generation.
  2. reconstruct the immediately preceding RTC transition instead of beginning with the later disconnect or UI notification.
  3. use protocol and object evidence to identify both sessions, terminals/ports, active-state owner, and release transition.
  4. confirm the distinction that resource exclusivity differs from a duplicate participant within one session.
  5. create a fresh operation generation after you end or hold the owning media session before activating the new one, and compare its final state with the failing run.

Correlate wire data and RTC events for this HRESULT; for this HRESULT, either source alone can misclassify local validation as remote rejection, or a remote status as a local media or profile failure.

Evidence that separates the cause

Build the incident record before automatic recovery runs; the result record must identify one client/profile/session generation and the exact signaling, presence, or media transition in progress.

When recording it, redact credentials, full telephone numbers, private contact lists, and message bodies; for this HRESULT, retain permitted URI domains, header names, byte counts, hashes, transaction identifiers, timestamps, and state transitions.

Protocol and object boundary

RTC areaRTC media controller and terminal boundary
Objects to correlateRTC session, media type, terminal/device, stream direction, controller state, acoustic echo cancellation
Condition to proveRTC permits only one active media session for the relevant resource and another session currently owns it
Safe corrective directionend or hold the owning media session before activating the new one

Two RTC rules frame it: first, Signaling success does not guarantee that a capture or render device exists or that a media stream can start; second, for this HRESULT, AddStream, RemoveStream, hold, and terminal selection change the media state machine and can race with callbacks from the previous operation.

Related RTC results

It should not be grouped with every value from the same facility. It is tied to the condition “RTC permits only one active media session for the relevant resource and another session currently owns it”; preserve that producing boundary before choosing recovery; the result table shows nearby alternatives.

RTC_E_NO_DEVICEno preferred or compatible media device is available for the requested RTC media type
RTC_E_START_STREAMRTC could not move a negotiated stream into the started state
RTC_E_MEDIA_AECRTC failed to enable acoustic echo cancellation for the audio path

Facility equality is not semantic equality; route each contrasted value through its own recovery branch.

How to handle the result

Resolve it at its producing layer: end or hold the owning media session before activating the new one; after it, a separate UI or watchdog retry must wait until that layer reports a final state.

Distinguish local rejection from an operation that may already have reached the server; for this HRESULT, use transaction identifiers and final events before replaying any non-idempotent action.

Example for this HRESULT: A softphone starts a second audio call while the first still owns the RTC media controller.

Actions that do not address this condition

Verification after a fix

A useful it regression does more than expect an exception; the result test constructs “RTC permits only one active media session for the relevant resource and another session currently owns it”, checks the exact HRESULT at the producing RTC boundary, and verifies state ownership before and after the targeted correction.

Technical references


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

Exit mobile version