| Previous | Next |
| STATUS_GRACEFUL_DISCONNECT | STATUS_ADDRESS_NOT_ASSOCIATED |
STATUS_ADDRESS_ALREADY_ASSOCIATED
The endpoint association state machine is being entered twice
STATUS_ADDRESS_ALREADY_ASSOCIATED maps directly to the TDI endpoint lifecycle. Microsoft states that after a connection endpoint has been associated with a local address, the client cannot issue another TDI_ASSOCIATE_ADDRESS for that endpoint until a successful TDI_DISASSOCIATE_ADDRESS request has completed.
This usually points to duplicated initialization, endpoint reuse without teardown, or a race between reconnect and disconnect logic. The local address value can be perfectly valid; the failure is that the endpoint already has association state. Logging only the requested IP or name will therefore send diagnosis in the wrong direction.
Track the endpoint object from creation through association, connect/listen, disconnect, disassociation, and close. If several threads can start a connection, make association ownership explicit. A failed connect does not automatically prove that the endpoint has returned to an unassociated state; use the actual completion sequence defined by the transport path before reusing it.
What to inspect
- The connection endpoint identity and the first successful association request that established its current local address.
- Reconnect, retry, or duplicated initialization paths that can issue a second association before disassociation completes.
- The completion status and ordering of disconnect, disassociate, and close operations for the same endpoint.
References
- Microsoft: TDI_ASSOCIATE_ADDRESS
- Microsoft: TDI_DISASSOCIATE_ADDRESS
- Microsoft: TDI_CONNECT
- Microsoft: TDI_LISTEN
- Microsoft Open Specifications: NTSTATUS values
Looking for a different code? Search another status or error code.