Core LibraryTopics

Choose documentation 3

latest

Current version

latest
English

Prerelease This site documents an alpha of libtmux. Its structure, URLs and APIs are subject to change.

Edit this page on GitHub

Errors and exceptions

A command can fail because tmux rejects it, or because the transport stops before returning a reply. Inspect the reported error and delivery state before retrying a mutation: tmux may already have received it.

For lookup failures caused by zero or multiple matches, see Filtering and queries.

A failed command, as a value

Failures raise subclasses of LibTmuxException, including TmuxCommandException, TmuxTransportException, and TmuxObjectNotFoundException.

Is it safe to retry?

Retry a mutation automatically only when you know it was not dispatched, or when repeating it is safe for your operation. A timeout, cancellation, or dropped connection can occur after tmux has acted. These APIs expose delivery information:

LibTmuxException.Dispatch reports a TmuxDispatchState: NotDispatched, Dispatched, or Unknown. Treat the default, Unknown, as potentially dispatched.

try
{
await session.CreateWindowAsync(new NewWindowRequest(name: "build"));
}
catch (LibTmuxException error) when (error.Dispatch == TmuxDispatchState.NotDispatched)
{
// safe to retry
}

Treat unknown delivery as potentially executed.

NotDispatched identifies a request that did not reach tmux.

For subprocess calls that complete normally, inspect the exit status. If a call is interrupted or times out without a delivery state, check tmux's resulting state before repeating a mutation.

Esc

Type to search.