Here is a list of common issues and recommended workarounds.
Releases before Android O (API 26) run on older Linux kernels (3.10) which lack modern container and gRPC support needed for automated Docker deployments.
If running emu-docker returns a "command not found" error, ensure you are
operating inside the Python virtual environment.
Activate the environment:
source ./configure.shIf you encounter a permission exception like:
requests.exceptions.ConnectionError: ('Connection aborted.', PermissionError(13, 'Permission denied'))Your user lacks permission to interact with the Docker daemon socket. Follow the official steps to manage Docker as a non-root user.
If emu-docker throws:
FileNotFoundError: [Errno 2] Unable to find ADB below $ANDROID_SDK_ROOT or on the path!
Ensure ADB is installed and added to your system PATH. ADB is included with
Android SDK Platform-Tools or command-line tools.
If emu-docker fails with:
Exception: emulator-xx.zip is not a zip file with a system image
Ensure arguments are specified in the correct positional order:
emu-docker create <emulator-zip> <system-image-zip>If the emulator inside a container crashes or is forcibly terminated, the Docker container may be left in an unresponsive state.
Remove the stopped container before restarting:
docker rm -f <CONTAINER_ID>If the React web app fails to establish a video stream:
-
Check Gateway Logs: Ensure the Python Signaling Gateway (
videobridge-gateway) is running and connected to the emulator's gRPC port. Check the terminal output for gRPC connection errors. -
Check Browser Console Logs: Look for WebRTC signaling or ICE candidate errors in your browser developer tools.
- If signaling connects but media stays black, a TURN server may be required for network/NAT traversal.
- You can pass TURN server configurations using the
--turncfgflag when invokingemu-docker create.
If Python Direct API calls fail with:
ConnectionResetError: [Errno 104] Connection reset by peerVerify your Docker credential helpers configuration. Pass the -v verbosity
flag to inspect authentication logs:
emu-docker -v create ...If docker compose raises credential errors when executed inside a Python
virtual environment, execute Docker Compose from your standard system shell
environment instead.