What does HRESULT 0x80080008 (CO_E_SERVER_STOPPING) mean?

 
Previous Next
MK_E_NO_NORMALIZED MEM_E_INVALID_ROOT

CO_E_SERVER_STOPPING

CO_E_SERVER_STOPPING identifies this condition: the SCM contacted a registered server while that server was revoking class objects or otherwise stopping.

The contract behind the HRESULT

COM activation is a sequence rather than a single operation: registration lookup, SCM or surrogate selection, process startup, class-factory publication, marshaling, and finally the requested interface call. The useful evidence is the evidence from the first stage that fails; a later RPC or cleanup message can otherwise hide the original activation problem.

A permanently unregistered class differs from a transient server generation that is deliberately stopping.

Diagnostic worksheet

  • Server shutdown trigger, service-control event, process lifetime, and outstanding client count
  • CoRevokeClassObject timing and class-factory registration state
  • Activation timestamp relative to deployment, recycle, idle shutdown, or crash recovery
  • Client retry policy and whether it targets the same server generation

Reproduce the condition safely

  1. Block new work before revoking class objects and observe whether activations drain cleanly.
  2. Delay shutdown until outstanding calls finish in a controlled build.
  3. Retry once against a new server generation and verify that stale proxies are not reused.

Closing the incident

The corrective action should be narrow: Coordinate admission control, class-object revocation, outstanding calls, and service stop so clients receive a stable handoff.

Close the incident only when rolling restart tests show no activation window where clients bind to the retiring generation, and bounded retry reaches the replacement server.

Technical references


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