| 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 area | RTC client lifecycle |
|---|---|
| Objects to correlate | IRTCClient instance, initialization generation, shutdown state, event sink, platform capability |
| Condition to prove | the RTC client instance has completed shutdown and cannot service the requested operation |
| Safe corrective direction | discard 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
- Use protocol and object evidence to record shutdown call stack, pending operations, and age of the interface pointer used afterward.
- Confirm the distinction that shutdown is irreversible for that instance even if COM references remain.
- 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_STATE | the targeted RTC object is alive but not in a state that permits this method |
|---|---|
RTC_E_CLIENT_ALREADY_INITIALIZED | code attempted to initialize an RTC client instance that is already active |
RTC_E_PLATFORM_NOT_SUPPORTED | the installed Windows/RTC platform does not implement the requested API capability |
Technical references
Looking for a different code? Search another status or error code.
