What does HRESULT 0x80EE0027 (RTC_E_CLIENT_ALREADY_SHUT_DOWN) mean?

 
Previous Next
RTC_E_CLIENT_ALREADY_INITIALIZED RTC_E_PRESENCE_NOT_ENABLED

RTC_E_CLIENT_ALREADY_SHUT_DOWN

What RTC_E_CLIENT_ALREADY_SHUT_DOWN means in RTC

This code belongs to initialization, shutdown, platform support, and global client-object configuration: the RTC client instance has completed shutdown and cannot service the requested operation.

For correlation, retain 0x80EE0027 in the RTC interface facility 0xEE together with this result; generic HRESULT text can otherwise hide the protocol family and the exact RTC branch.

Evidence should show that you record shutdown call stack, pending operations, and age of the interface pointer used afterward; the diagnostic distinction is that shutdown is irreversible for that instance even if COM references remain.

Protocol and object state

RTC areaRTC client lifecycle
Objects to correlateIRTCClient instance, initialization generation, shutdown state, event sink, platform capability
Condition to provethe RTC client instance has completed shutdown and cannot service the requested operation
Safe corrective directiondiscard all generation-owned objects and construct a fresh client for future work

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.

How to prove the condition

  1. Use protocol and object evidence to record shutdown call stack, pending operations, and age of the interface pointer used afterward.
  2. Confirm the distinction that shutdown is irreversible for that instance even if COM references remain.
  3. Start a fresh operation after you discard all generation-owned objects and construct a fresh client for future work, and compare its final state with the failing run.

Minimum incident record

  • Code-specific proof: record shutdown call stack, pending operations, and age of the interface pointer used afterward.
  • Owning object: OS and rtcdll.dll version.
  • Wire evidence: client instance identity.
  • Lifecycle state: Initialize and Shutdown call order.

Actions that do not address this condition

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

Correct application response

The owning RTC component should discard all generation-owned objects and construct a fresh client for future work; it should also settle or cancel its previous operation before callers begin a replacement.

Example: A reconnect timer fires after the application has already shut down RTC.

Nearby failure modes

RTC_E_INVALID_OBJECT_STATEthe targeted RTC object is alive but not in a state that permits this method
RTC_E_CLIENT_ALREADY_INITIALIZEDcode attempted to initialize an RTC client instance that is already active
RTC_E_PLATFORM_NOT_SUPPORTEDthe installed Windows/RTC platform does not implement the requested API capability

Technical references


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