| Previous | Next |
| RTC_E_SIP_STACK_SHUTDOWN | RTC_E_MEDIA_NEED_TERMINAL |
RTC_E_MEDIA_CONTROLLER_STATE
What the RTC value marks: RTC_E_MEDIA_CONTROLLER_STATE
The operational meaning of this result is tied to binding negotiated audio or video streams to media terminals and moving the media controller through legal states: the requested media action is illegal in the current controller state.
The machine-readable identity of this result is 0x80EE001F 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.
The first useful check is to record controller state, requested transition, pending media event, and session state. The result must be separated from nearby conditions because wrong controller state is not equivalent to missing terminal or device.
Protocol and object state
| RTC area | RTC media controller and terminal |
|---|---|
| Objects to correlate | RTC session, media type, terminal/device, stream direction, controller state, acoustic echo cancellation |
| Condition to prove | the requested media action is illegal in the current controller state |
| Safe corrective direction | wait for the legal transition or rebuild media control from the documented state |
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.
Evidence that separates the cause
- Code-specific proof: record controller state, requested transition, pending media event, and session state.
- Identity and target: terminal/device identifier.
- State at production: controller state before and after call.
- Timing and ordering: stream direction and negotiated codec.
Related RTC results
RTC_E_MEDIA_VIDEO_DEVICE_NOT_AVAILABLE | the selected video capture or render device is unavailable to RTC |
|---|---|
RTC_E_MEDIA_NEED_TERMINAL | the media stream has no terminal/device bound for the requested direction |
RTC_E_ANOTHER_MEDIA_SESSION_ACTIVE | RTC permits only one active media session for the relevant resource and another session currently owns it |
A safe diagnostic sequence
- Start from
0x80EE001F, then find the method/event pair that first exposed it. - Keep the analysis at the right boundary: wrong controller state is not equivalent to missing terminal or device.
- After you wait for the legal transition or rebuild media control from the documented state, repeat the smallest reproducer rather than restarting the entire application environment.
How to handle the result
The owning RTC component should wait for the legal transition or rebuild media control from the documented state; it should also settle or cancel its previous operation before callers begin a replacement.
Example: Code calls start again while the controller is still stopping a previous stream.
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.