Skip to content

v1.62.0: Fix `tmuxp load` traceback after session kill

Latest

Choose a tag to compare

@tony tony released this 14 Dec 12:15

Highlights

This release fixes an important bug where users would see a TmuxObjectDoesNotExist traceback after detaching from a session that was killed during use. The fix comes via the libtmux 0.53.0 dependency update.

Bug Fixes

Fixed traceback on session load (#1002, #1003)

Fixed an issue where tmuxp load would display a traceback after users detached from a killed session.

The Problem

After running tmuxp load, users would see this traceback printed to their terminal after detaching:

Traceback (most recent call last):
  File "~/.local/bin/tmuxp", line 7, in <module>
    sys.exit(cli.cli())
  ...
  File ".../tmuxp/cli/load.py", line 152, in _load_attached
    builder.session.attach()
  File ".../libtmux/session.py", line 332, in attach
    self.refresh()
  File ".../libtmux/neo.py", line 242, in fetch_obj
    raise exc.TmuxObjectDoesNotExist(...)
libtmux.exc.TmuxObjectDoesNotExist: Could not find object

When It Occurred

Users encountered this when they:

  1. Loaded a tmux session via tmuxp load
  2. Worked in the session
  3. Killed the session (e.g., closed all windows) before detaching
  4. Detached from tmux

Root Cause

The issue was in libtmux's Session.attach() method, which called refresh() after the attach-session command returned. Since attach-session is a blocking interactive command, the session state can change arbitrarily during attachment — including being killed entirely. Attempting to refresh a non-existent session caused the exception.

Timeline

  • Feb 2024: libtmux added Session.attach() with the refresh() call
  • Nov 2025: tmuxp switched from the older attach_session() to attach()
  • Users started experiencing the bug

Resolution

Fixed in libtmux 0.53.0 (libtmux#616) by removing the unnecessary refresh() call from Session.attach().

Dependency Updates

libtmux 0.52.1 → 0.53.0

Breaking Change: Minimum libtmux version bumped from 0.52.1 to 0.53.0.

libtmux 0.53.0 includes:

  • Fix for Session.attach(): Removes the refresh() call that caused TmuxObjectDoesNotExist exceptions when sessions were killed during attachment

Development Updates

  • Bumped development dependencies
  • Updated uv from 0.9.16 to 0.9.17

Installation

pip:

pip install --upgrade tmuxp

uv:

uv add tmuxp

uvx (one-time use):

uvx tmuxp load <config>

pipx:

pipx upgrade tmuxp

What's Changed

  • py(deps) Bump libtmux 0.52.1 -> 0.53.0 by @tony in #1003

Full Changelog: v1.61.0...v1.62.0