What does HRESULT 0x80EE0025 (RTC_E_CLIENT_NOT_INITIALIZED) mean?

 
Previous Next
RTC_E_MEDIA_AEC RTC_E_CLIENT_ALREADY_INITIALIZED

RTC_E_CLIENT_NOT_INITIALIZED

What the RTC value marks: RTC_E_CLIENT_NOT_INITIALIZED

This result belongs to the RTC client lifecycle boundary area of RTC and identifies an RTC method was called before the client completed initialization.

This result carries 0x80EE0025 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.

Collect enough state to record object construction, Initialize result, event-filter setup, and calling thread order; the result evidence should demonstrate why a valid COM pointer does not imply the RTC client state machine is initialized.

Protocol and object state

RTC areaRTC client lifecycle
Objects to correlateIRTCClient instance, initialization generation, shutdown state, event sink, platform capability
Condition to provean RTC method was called before the client completed initialization
Safe corrective directioninitialize once, verify success, then create child objects and enable profiles

RTC Client API objects are stateful COM objects; child sessions and profiles belong to the client instance that created them. A shutdown transition invalidates pending operations even if application code still holds interface pointers.

Evidence that separates the cause

  • Code-specific proof: record object construction, Initialize result, event-filter setup, and calling thread order.
  • Identity and target: Initialize and Shutdown call order.
  • State at production: thread/apartment and event sink.
  • Timing and ordering: outstanding session/profile count.

A safe diagnostic sequence

  1. Start from 0x80EE0025, then find the method/event pair that first exposed it.
  2. To verify this, record object construction, Initialize result, event-filter setup, and calling thread order.
  3. Keep the analysis at the right boundary: a valid COM pointer does not imply the RTC client state machine is initialized.
  4. After you initialize once, verify success, then create child objects and enable profiles, repeat the smallest reproducer rather than restarting the entire application environment.

How to handle the result

To correct this, initialize once, verify success, then create child objects and enable profiles.

Example: A worker thread calls CreateSession before the UI thread finishes initializing RTC.

Actions that do not address this condition

  • Do not hide lifecycle bugs by repeatedly constructing new clients inside a retry loop.
  • Do not reuse child objects after shutdown or reinitialization.

Related RTC results

RTC_E_CLIENT_ALREADY_SHUT_DOWNthe RTC client instance has completed shutdown and cannot service the requested operation
RTC_E_INVALID_OBJECT_STATEthe targeted RTC object is alive but not in a state that permits this method
RTC_E_MAX_PENDING_OPERATIONSthe RTC client reached its cap on concurrent asynchronous operations

Technical references


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