SO101-Nexus
Teleoperation

Teleoperation Troubleshooting

Fix common teleop startup and runtime issues on Linux, including serial permissions and Ubuntu libdecor warnings.

Serial port permissions

If teleop cannot open /dev/ttyACM*, fix the device permissions and retry initialization in the same browser session:

sudo chmod 666 /dev/ttyACM0
lerobot-find-port

The teleop UI now stays on the Initialize step and shows recovery guidance instead of forcing a restart.

Ubuntu libdecor-gtk warnings

On Ubuntu, you may see warnings like:

libdecor-gtk-WARNING: Failed to initialize GTK
Failed to load plugin 'libdecor-gtk.so': failed to init

For teleop, this is usually non-fatal. The SO101-Nexus teleop recorder uses offscreen rgb_array rendering for the simulation feed, not the MuJoCo human viewer path, so dataset recording can still work even if native window decoration support is incomplete.

If you want to eliminate the warning or ensure native viewer dependencies are present, install the Ubuntu runtime packages that provide libdecor and GTK:

# Ubuntu 24.04+
sudo apt install libdecor-0-0 libdecor-0-plugin-1-gtk libgtk-3-0t64

# Ubuntu 22.04
sudo apt install libdecor-0-0 libgtk-3-0

Ubuntu package references:

If you are only using teleop through the browser and recording works, you do not need to treat this warning as a hard failure.

When the warning is actually a problem

Treat it as actionable if:

  • the app crashes before the Gradio UI becomes usable
  • the simulation viewer fails to render at all
  • you are intentionally running a native MuJoCo human-viewer workflow outside the teleop browser flow

In those cases, install the packages above first, then retry.

On this page