| Previous | Next |
| RTC_E_LOCAL_PHONE_NEEDED | RTC_E_INVALID_PROFILE |
RTC_E_NO_DEVICE
Operational meaning: RTC_E_NO_DEVICE
This result belongs to the RTC media controller and terminal boundary area of RTC and identifies no preferred or compatible media device is available for the requested RTC media type.
This result carries 0x80EE002D in the RTC interface facility 0xEE; store the result value at the first RTC callback or method boundary, before retry logic replaces it with a broader timeout or connection message.
Start the result investigation by having the trace enumerate terminals and preferred-device settings for capture and render; do not skip the distinction that this is selection/capability absence, while MEDIA_*_DEVICE_NOT_AVAILABLE can describe a chosen device that became unavailable.
Signals worth preserving
- Code-specific proof: enumerate terminals and preferred-device settings for capture and render.
- Correlation key: stream direction and negotiated codec.
- Protocol or object snapshot: device removal or format-change event.
- Last completed transition: session and media type.
- Expected output: terminal/device identifier.
Protocol and object state
| RTC area | RTC media controller and terminal |
|---|---|
| Condition to prove | no preferred or compatible media device is available for the requested RTC media type |
| Objects to correlate | RTC session, media type, terminal/device, stream direction, controller state, acoustic echo cancellation |
| Safe corrective direction | select a valid terminal or disable that media type for the session |
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.
Verification workflow
- Start from
0x80EE002D, then find the method/event pair that first exposed it. - To verify this, enumerate terminals and preferred-device settings for capture and render.
- Keep the analysis at the right boundary: this is selection/capability absence, while MEDIA_*_DEVICE_NOT_AVAILABLE can describe a chosen device that became unavailable.
- After you select a valid terminal or disable that media type for the session, repeat the smallest reproducer rather than restarting the entire application environment.
Do not confuse it with
RTC_E_MEDIA_AEC | RTC failed to enable acoustic echo cancellation for the audio path |
|---|---|
RTC_E_MEDIA_ENABLED | code attempted an enable transition for media that is already enabled |
RTC_E_MEDIA_SESSION_NOT_EXIST | the requested media-session object no longer exists for the RTC signaling session |
Recovery and control flow
Recovery should be narrow: select a valid terminal or disable that media type for the session; while handling this result, do not let a higher layer simultaneously recreate the same session, registration, listener, or profile.
Example: A headless machine starts an audio session with no configured audio terminal.
Actions that do not address this condition
- Do not recreate the entire SIP session before determining whether only a local terminal failed.
- Do not assume the default Windows device is the terminal selected by the RTC object.
Technical references
Looking for a different code? Search another status or error code.