Welcome to the comprehensive troubleshooting guide for the Free GitHub Actions RDP for App Testing framework. Because this framework relies on ephemeral cloud runners, nested virtualization, and reverse SSH tunneling, a few environmental quirks can occasionally occur.
This guide is broken down by category to help you quickly diagnose and resolve any issues.
Cause: The XRDP server running inside the GitHub Actions Docker container failed to verify your credentials against the shadow password file due to strict PAM (Pluggable Authentication Module) restrictions. Solution:
- Ensure you typed the password exactly as
ThePassword123!(case-sensitive). - If the issue persists, the automatic PAM patching script may have failed to execute. Check the GitHub Actions logs for the step named
Patch PAM and Shadow Groupto verify it ran successfully. - Try restarting the session or switching to a different Desktop Environment (e.g., from GNOME to XFCE).
Cause: Apple's SecureToken system blocked the creation of the user password via sysadminctl.
Solution:
- The script bypasses this by generating an ED25519 SSH key pair and injecting it directly into
authorized_keys. - Do not attempt to use a password to log into the macOS SSH session. Instead, use the exact SSH command provided in the terminal output or Actions logs (which includes the
-iflag pointing to your newly generated private key).
Cause: The free tier of Pinggy has a strict 60-minute session limit per tunnel. Solution: Our framework now includes a completely automated bypass system!
- The script will automatically trigger a native UI warning directly onto your cloud desktop at the 55-minute mark.
- At the 57-minute mark, the script autonomously kills the active Pinggy tunnel and immediately restarts a brand-new one.
- Your session remains 100% active in the background. Simply go back to your GitHub Actions run logs, fetch the newly generated URL, and reconnect to resume your work instantly.
Cause: The VNC or RDP server process may have crashed, or you are attempting to connect to a stale Pinggy URL. Solution:
- Verify that you are using the most recent Pinggy URL. If the 57-minute bypass just executed, the old URL is permanently dead. You must retrieve the new URL from the Actions logs.
- If you are using Windows, ensure you are using a standard RDP client (like Microsoft Remote Desktop). VNC clients will not work for the Windows OS choice.
- If you are using Linux or macOS, ensure your VNC client supports high-color depth and dynamic resolution. We recommend RealVNC Viewer or TigerVNC.
Cause: GitHub Actions Windows runners utilize Windows Server 2022. By default, Windows Server enforces a Group Policy that aggressively bans audio playback and microphone capture over RDP to save bandwidth.
Solution:
This framework automatically injects Registry overrides (fAllowAudioPlayback and fDisableAudioCapture) to bypass these group policies and force the Audiosrv to start.
- If audio still fails, ensure your local RDP client is configured to "Play on this computer".
- Open the "Remote Desktop Connection" app on your local PC -> Show Options -> Local Resources -> Remote audio -> Settings -> Select "Play on this computer".
Cause: The Linux environment compiles the pulseaudio-module-xrdp bridge on the fly. High CPU usage on the cloud runner can cause buffer underruns.
Solution:
- Lower your RDP client's color depth setting from 32-bit to 16-bit to free up bandwidth.
- Restart the pulseaudio daemon inside the cloud runner via terminal:
pulseaudio -k && pulseaudio --start.
Cause: GitHub Actions suppresses continuous terminal output to prevent log flooding. Because aria2c relies on live progress bars, the output may appear frozen.
Solution:
Do not cancel the job. Check the initial ETA printed before the output paused. Gigabit download speeds mean most ISOs (2GB - 4GB) will finish downloading silently in under 60 seconds.
Cause: The ISO lacks proper UEFI boot loaders, or requires specific ACPI AC/Battery flags not supported by the headless QEMU engine. Solution:
- Ensure the ISO is an
amd64/x86_64architecture (ARM ISOs cannot be natively booted via QEMU on GitHub's x64 runners without extreme performance degradation). - For legacy operating systems, you may need to manually edit the
rdp.pyscript to remove the-bios /usr/share/ovmf/OVMF.fdflag to force Legacy BIOS mode instead of UEFI.
Cause: The GitHub CLI (gh) was unable to trigger the workflow automatically, usually because the workflow file hasn't been indexed by GitHub's backend yet, or due to a lack of workflow scope permissions.
Solution:
- Navigate directly to your GitHub Repository in your web browser.
- Click on the Actions tab.
- Select the workflow from the left sidebar.
- Click the Run workflow dropdown on the right side and execute it manually.
If your issue is not listed here, or you believe you have discovered a new bug, please open a detailed issue on the main repository! Include the OS choice, Desktop Environment, and any relevant logs.