<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Troubleshooting on Mulham Fetna</title>
    <link>https://mulhamfetna.com/tags/troubleshooting/</link>
    <description>Recent content in Troubleshooting on Mulham Fetna</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <managingEditor>contact@mulhamfetna.com (Mulham Fetna)</managingEditor>
    <webMaster>contact@mulhamfetna.com (Mulham Fetna)</webMaster>
    <copyright>© 2026 Mulham Fetna</copyright>
    <lastBuildDate>Wed, 16 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://mulhamfetna.com/tags/troubleshooting/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Troubleshooting and FAQ: MuJoCo, MediaPipe and ROS 2 in Docker</title>
      <link>https://mulhamfetna.com/projects/ros2-tendon-driven-hand-mujoco-digital-twin-vision-teleoperation/troubleshooting-faq/</link>
      <pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate>
      <author>contact@mulhamfetna.com (Mulham Fetna)</author>
      <guid>https://mulhamfetna.com/projects/ros2-tendon-driven-hand-mujoco-digital-twin-vision-teleoperation/troubleshooting-faq/</guid>
      <description>&lt;div class=&#34;lead text-neutral-500 dark:text-neutral-400 !mb-9 text-xl&#34;&gt;&#xA;  Every entry here was hit, or deliberately checked, while building this project. Error messages are&#xA;quoted exactly so a search for the message lands on the fix.&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&lt;h2 class=&#34;relative group&#34;&gt;Camera and windows&#xA;    &lt;div id=&#34;camera-and-windows&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#camera-and-windows&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h2&gt;&#xA;&#xA;&lt;h3 class=&#34;relative group&#34;&gt;&lt;code&gt;RuntimeError: Failed to open camera at index 0&lt;/code&gt;&#xA;    &lt;div id=&#34;runtimeerror-failed-to-open-camera-at-index-0&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#runtimeerror-failed-to-open-camera-at-index-0&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Something else holds the webcam&lt;/strong&gt; — the standalone script, a previous container, a browser tab.&#xA;Run &lt;code&gt;docker compose down&lt;/code&gt; and close video apps. A camera opens in one process at a time.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The camera is another node.&lt;/strong&gt; &lt;code&gt;ls /dev/video*&lt;/code&gt;, then map that device and set &lt;code&gt;CAMERA_INDEX&lt;/code&gt;&#xA;(many webcams expose &lt;code&gt;/dev/video0&lt;/code&gt; for frames and &lt;code&gt;/dev/video1&lt;/code&gt; for metadata — use the first).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;The device isn&amp;rsquo;t mapped.&lt;/strong&gt; Check with &lt;code&gt;docker compose config | grep video&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3 class=&#34;relative group&#34;&gt;Windows don&amp;rsquo;t open — &lt;code&gt;cannot connect to X server&lt;/code&gt;, &lt;code&gt;could not connect to display&lt;/code&gt;&#xA;    &lt;div id=&#34;windows-dont-open--cannot-connect-to-x-server-could-not-connect-to-display&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#windows-dont-open--cannot-connect-to-x-server-could-not-connect-to-display&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Run &lt;code&gt;./setup_host.sh&lt;/code&gt; (it runs &lt;code&gt;xhost +local:root&lt;/code&gt;). The permission resets when you log out.&lt;/li&gt;&#xA;&lt;li&gt;Make sure &lt;code&gt;echo $DISPLAY&lt;/code&gt; on the host prints &lt;code&gt;:0&lt;/code&gt;, or export &lt;code&gt;DISPLAY&lt;/code&gt; before &lt;code&gt;docker compose up&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;On Wayland, confirm XWayland is running: &lt;code&gt;ls /tmp/.X11-unix/&lt;/code&gt; should list &lt;code&gt;X0&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&lt;h3 class=&#34;relative group&#34;&gt;Black, blank or garbled OpenCV window&#xA;    &lt;div id=&#34;black-blank-or-garbled-opencv-window&#34; class=&#34;anchor&#34;&gt;&lt;/div&gt;&#xA;    &#xA;    &lt;span&#xA;        class=&#34;absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none&#34;&gt;&#xA;        &lt;a class=&#34;text-primary-300 dark:text-neutral-700 !no-underline&#34; href=&#34;#black-blank-or-garbled-opencv-window&#34; aria-label=&#34;Anchor&#34;&gt;#&lt;/a&gt;&#xA;    &lt;/span&gt;&#xA;    &#xA;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;code&gt;QT_X11_NO_MITSHM=1&lt;/code&gt; must reach the container. It&amp;rsquo;s in the shared Compose environment — if a service&#xA;defines its own &lt;code&gt;environment:&lt;/code&gt;, it must merge the shared anchor with &lt;code&gt;&amp;lt;&amp;lt;: *ros-env&lt;/code&gt; rather than&#xA;replace it (&lt;a href=&#34;https://mulhamfetna.com/projects/ros2-tendon-driven-hand-mujoco-digital-twin-vision-teleoperation/docker-compose-architecture/&#34; &gt;Part 16&lt;/a&gt;).&lt;/p&gt;</description>
      <media:content xmlns:media="http://search.yahoo.com/mrss/" url="https://mulhamfetna.com/projects/ros2-tendon-driven-hand-mujoco-digital-twin-vision-teleoperation/troubleshooting-faq/cover.png" />
    </item>
    
  </channel>
</rss>
