What does HRESULT 0x80EE0021 (RTC_E_MEDIA_AUDIO_DEVICE_NOT_AVAILABLE) mean?

 
Previous Next
RTC_E_MEDIA_NEED_TERMINAL RTC_E_MEDIA_VIDEO_DEVICE_NOT_AVAILABLE

RTC_E_MEDIA_AUDIO_DEVICE_NOT_AVAILABLE

Where the state changes: RTC_E_MEDIA_AUDIO_DEVICE_NOT_AVAILABLE

This result is useful only when preserved with its producing phase; in binding negotiated audio or video streams to media terminals and moving the media controller through legal states, it denotes the chosen audio capture or render device is unavailable to RTC.

The machine-readable identity of this result is 0x80EE0021 in the RTC interface facility 0xEE; the result identity matters because RTC uses separate facilities for API conditions, SIP final responses, and PINT service statuses.

Before changing configuration, capture endpoint identity, direction, device-removal event, exclusive-use state, and format; the RTC codes surrounding this result are not equivalent because device unavailability is local and can coexist with a valid SIP session and SDP negotiation.

Telemetry and packet evidence

  • Code-specific proof: capture endpoint identity, direction, device-removal event, exclusive-use state, and format.
  • Addressing context: terminal/device identifier.
  • RTC callback state: controller state before and after call.
  • Transaction boundary: stream direction and negotiated codec.
  • Media or profile detail: device removal or format-change event.

Step-by-step isolation

  1. Confirm the distinction that device unavailability is local and can coexist with a valid SIP session and SDP negotiation.
  2. Start a fresh operation after you select another compatible endpoint or wait for the device to return without rebuilding signaling unnecessarily, and compare its final state with the failing run.

Protocol and object state

RTC areaRTC media controller and terminal
Condition to provethe chosen audio capture or render device is unavailable to RTC
Objects to correlateRTC session, media type, terminal/device, stream direction, controller state, acoustic echo cancellation
Safe corrective directionselect another compatible endpoint or wait for the device to return without rebuilding signaling unnecessarily

Signaling success does not guarantee that a capture or render device exists or that a media stream can start. AddStream, RemoveStream, hold, and terminal selection change the media state machine and can race with callbacks from the previous operation.

Recovery

Recovery should be narrow: select another compatible endpoint or wait for the device to return without rebuilding signaling unnecessarily; while handling this result, do not let a higher layer simultaneously recreate the same session, registration, listener, or profile.

Example: A USB headset is removed between call acceptance and media start.

Comparison with adjacent codes

RTC_E_START_STREAMRTC could not move a negotiated stream into the started state
RTC_E_MEDIA_NEED_TERMINALthe media stream has no terminal/device bound for the requested direction
RTC_E_ANOTHER_MEDIA_SESSION_ACTIVERTC permits only one active media session for the relevant resource and another session currently owns it

Actions that do not address this condition

  • Do not assume the default Windows device is the terminal selected by the RTC object.
  • Do not recreate the entire SIP session before determining whether only a local terminal failed.

Technical references


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