mait.sh1.142.0

Private beta: features and content may change. No warranty; use at your own risk.

Docs / MCP tool

MCP XSession problems and fixes

Fix desktop creation, RDP connections, blank screens, resize, sound and the microphone.

Each session writes one log per component, and the create result names the paths.

Use the paths and credentials returned for this session, not another one.

Help
MCP XSession

Create failed and no desktop appeared

The error names the component and includes the end of its log.

Message mentionsCheck
A binary not found on PATHInstall it, or set the matching XSESSION_*_BIN variable
A display or TCP port in useOmit --display-number or --rdp-port
An X11 socket that did not appearRead the display server log
A runtime path too longUse a shorter session ID or XDG_RUNTIME_DIR
Message mentions
A binary not found on PATH
Check
Install it, or set the matching XSESSION_*_BIN variable
Message mentions
A display or TCP port in use
Check
Omit --display-number or --rdp-port
Message mentions
An X11 socket that did not appear
Check
Read the display server log
Message mentions
A runtime path too long
Check
Use a shorter session ID or XDG_RUNTIME_DIR

If the failure came late, list the sessions before retrying the same name.

MCP XSession

Separate commands do not see the same session

In the default per-connection mode, each invocation is its own owner. Confirm both commands reach the same server and socket, and that it runs with --session-mode shared. A command that cannot reach the server works on its own without saying so, and a desktop it creates keeps running with no owner: start the server, list with includeOrphaned, adopt the exact id and destroy it. For a socket other than /tmp/mcp-xsession.sock, prefix the command with MCP_SERVER_URL=unix://<path> rather than exporting it, because every MCP command-line tool reads that variable. Set session defaults such as AIDCX_AUDIO where the server starts, not on the command.

MCP XSession

An RDP client cannot connect

One client is served at a time. The session offers TLS without NLA, the username is xsession, and the password is the session token from xsession_get_env. Accept the self-signed certificate and use the port this session returned. rdpd.log records each admission.

MCP XSession

The desktop is blank or ignores input

Screen capture starts when a client first connects. Look for capture errors in rdpd.log and the desktop server in Xvnc.log; XDamage support is required. Fix the host capability and reconnect.

MCP XSession

Stop, resize or a local display

Stop freezes the supervised processes; an application that detached into its own group keeps running, so destroy the session for full cleanup. Resize needs a running session and a size within the reported limits; reconnect if the client keeps the old size. Local tools need both DISPLAY and XAUTHORITY from xsession_get_env.

MCP XSession

The desktop is silent or the microphone is quiet

Confirm the session's audio is not off and that its components include pulseaudio; without it the desktop starts silent, and you install pulseaudio and create a new session. Read rdpd.log for the negotiated format. Some clients need sound or microphone enabled explicitly, for example /sound and /microphone. parec comes from pulseaudio-utils; after installing it, create a new session. The capture device is always xsession_mic.

MCP XSession

The connection drops after about 30 seconds

Either the client never authenticated, or it stopped reading data; the log says which. An idle but healthy connection is not dropped.

MCP XSession

A session is missing after recovery, or destroy reported errors

Recovery skips sessions it cannot verify; create a new one rather than editing the stored record. Destroy removes the record even when a process or directory remains; clean remnants with host tools.

MCP XSession

Destroying a stopped session is slow or times out

Destroy does not thaw a stopped session first, so its frozen components wait out a grace period and are then killed. Resume the session, then destroy it. After a timeout, list the sessions and destroy any that remain.

What you getA running desktop that your RDP client can reach, with sound and input working.