Contents
- Summary
- GUI Requirement
- Symptoms
- Likely Cause
- Quick Fix (Recommended)
- Full Reset Option
- Verification
- Helpful Commands
- FAQ
- Support
Summary
If Positron fails to start an R session and reports a JEP 66 handshake timeout or HTTP Request failed while using Native IPC, switch the session transport to TCP or reset your Positron user configuration directories. This resolves most startup handshake issues related to experimental inter‑process communication (IPC) backends.
"kernelSupervisor.transport": "tcp" in Positron settings. Restart Positron. If that fails, remove ~/.positron and ~/.config/Positron and relaunch.GUI Requirement
This software requires a graphical desktop environment. Launch Positron via one of:
- Open OnDemand > Basic Desktop
- Open OnDemand > Advanced Desktop (if you need GPU / extended runtime)
Launching Positron in a non-GUI or pure terminal session is not supported.
Symptoms
- R (or Python) session does not start in Positron.
- Status bar shows repeated reconnect attempts.
- Multiple HTTP Request failures.
- Log or notification:
Failed to complete JEP 66 handshake: Timeout waiting for handshake.
Likely Cause
The Native IPC transport can fail under certain cluster filesystem, permissions, or environment conditions. TCP transport is more tolerant in these environments and typically eliminates the startup race or visibility issue preventing the handshake.
Quick Fix: Switch Transport to TCP
- Open Positron Settings (GUI):
Use the menu (e.g. File > Preferences > Settings) or the command palette (Ctrl+Shift+P) and search for Settings. - Search for
kernelSupervisor.transport. If a UI toggle is not present, choose Open Settings (JSON). Add (or modify) the JSON entry:
{ "kernelSupervisor.transport": "tcp" }- Save the file and fully restart Positron (close all windows, then reopen).
- Start a new R session (open a
.Rfile or the console). The session should initialize without the handshake error.
The setting below is the minimal diff:
"kernelSupervisor.transport": "tcp"Full Reset Option (If Quick Fix Fails)
If switching to TCP does not resolve the issue, reset user configuration and allow Positron to regenerate defaults.
- Ensure Positron is closed.
In a terminal inside your desktop session run:
mv ~/.positron ~/.positron.bak.$(date +%Y%m%d-%H%M%S) 2>/dev/null || true mv ~/.config/Positron ~/.config/Positron.bak.$(date +%Y%m%d-%H%M%S) 2>/dev/null || true(You can remove the backups later if everything works.)
Reload the module / environment (example—adjust if your module name differs):
module purge module load Positron- Launch Positron again from the GUI desktop.
Verification
On a successful first launch after reset you should see a message similar to:
~/.config/Positron/User/settings.jsonThen opening an R console should show a standard prompt (e.g. >) without error messages.
Helpful Commands & Files
| Item | Description | Action |
|---|---|---|
~/.config/Positron/User/settings.json | Main user settings file (JSON) | Edit to add "kernelSupervisor.transport": "tcp" |
~/.positron | Legacy/auxiliary cache directory | Remove for full reset (after backup) |
module load Positron | Loads Positron environment (example) | Run before launching GUI |
ps -ef | grep -i positron | Check lingering processes | Terminate stale ones before relaunch |
FAQ
Does using TCP reduce performance?
For typical interactive analysis workloads, the difference between Native IPC and TCP loopback is negligible.
Will resetting remove my projects?
No. Only Positron configuration directories are removed. Your project directories remain untouched.
Can I switch back to Native IPC later?
Yes. Remove the transport setting or set it to its previous value and retest. If the handshake issue returns, stay with TCP.
