# libtmux.Client._resolve_attached

- **Module:** libtmux.Client
- **Package:** libtmux
- **Language:** Python
- **Kind:** method
- **Source:** https://github.com/tmux-python/libtmux/blob/036c521c4b83ce6e434eb50afe2a0d08a6a05e46/src/libtmux/client.py#L188
- **Page:** https://libtmux.org/reference/py/libtmux-client-_resolve_attached/

```
libtmux.Client._resolve_attached(self) -> tuple[Session | None, Window | None, Pane | None]
```

Resolve live attachment with a single ``list-clients`` refresh.

The three :attr:`attached_session` / :attr:`attached_window` /
:attr:`attached_pane` properties each trigger their own
``list-clients`` refresh — calling them in sequence performs three
tmux reads for one conceptual "where is this client attached *now*"
read. ``_resolve_attached`` shares a single refresh across the
triple and returns the three values together.

## Returns

tuple[Session | None, Window | None, Pane | None]
    * ``(None, None, None)`` when tmux no longer reports this
      ``client_name`` through ``list-clients``, when the client
      snapshot has no ``session_id``, or when the snapshot
      ``session_id`` no longer names a live session.
    * ``(session, None, None)`` when the attached session has no
      active window.
    * ``(session, window, pane)`` for a fully-resolved live
      attachment. ``pane`` is ``None`` only when the active
      window has no active pane.

:exc:`~libtmux.exc.MultipleActiveWindows` propagates rather than
collapsing to ``(session, None, None)`` — multiple active windows
in one session indicates inconsistent tmux state that callers
should see, not absent attachment.
