Arduino IDE 2.x gets completely stuck on the startup screen (splash screen). The logs show that the frontend (Theia/Electron) fails to connect to the backend daemon (arduino-cli) via the local loopback address (localhost), resulting in a persistent Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ETIMEDOUT 127.0.0.1:<port> error.
After hours of troubleshooting, I discovered that running the Arduino IDE executable in "Windows 8 Compatibility Mode" instantly fixes the issue.
To Reproduce It's an environment-specific issue on Windows 11, likely related to how the OS network stack interacts with the Electron framework when specific virtual network adapters are present in the system.
- Launch Arduino IDE normally on Windows 11.
- The IDE hangs indefinitely on the splash screen.
- Check logs: The
arduino-clidaemon starts successfully and listens on a random port (e.g.,127.0.0.1:63899), but the frontend times out trying to connect to it.
Troubleshooting steps taken (None of these worked):
- Downgrading versions: Tested on IDE 2.3.8, 2.3.3, and 2.3.2. Same issue on all.
- Reinstalling: Installed for "Current User" and "All Users".
- Antivirus/Firewall: Completely disabled ESET Antivirus and Firewall.
- Clearing Caches/Configs: Deleted everything inside:
C:\Users\<user>\.arduinoIDEC:\Users\<user>\AppData\Local\Arduino15C:\Users\<user>\AppData\Roaming\arduino-ide
- Network Resets: Performed
netsh winsock resetand rebooted. - VPNs: I have ZeroTier and Cloudflare WARP installed, but both were completely disabled/turned off during testing.
The Workaround (What actually worked):
- Right-click on the Arduino IDE shortcut or
Arduino IDE.exe. - Go to Properties -> Compatibility tab.
- Check "Run this program in compatibility mode for: Windows 8".
- Apply and launch. The IDE starts instantly and works flawlessly.
The IDE should be able to resolve and connect to its internal localhost process on a native Windows 11 environment without requiring legacy compatibility modes.
Desktop Environment:
- OS: Windows 11
- IDE Version: 2.3.8 (and older 2.3.x)
- Security: ESET (disabled during test)
- Network: ZeroTier / Cloudflare WARP installed (but disabled)
Logs Snippet:
Plaintext2026-05-10 14:15:51 2026-05-10T12:15:51.092Z daemon INFO Daemon is now listening on 127.0.0.1:63899 {"IP":"127.0.0.1","Port":"63899"} 2026-05-10 14:15:51 2026-05-10T12:15:51.092Z daemon INFO Daemon is running. (...) 2026-05-10 14:15:51 2026-05-10T12:15:51.422Z root ERROR Uncaught Exception: Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ETIMEDOUT 127.0.0.1:63899 2026-05-10 14:15:51 2026-05-10T12:15:51.422Z root ERROR Error: 14 UNAVAILABLE: No connection established. Last error: Error: connect ETIMEDOUT 127.0.0.1:63899 at t.callErrorFromStatus (C:\Program Files\Arduino IDE\resources\app\lib\backend\main.js:2:3120831)
It seems that the presence of virtual network adapters (ZeroTier/WARP) in Windows 11 breaks something in how Node.js/Electron handles IPv4 loopback (127.0.0.1) vs IPv6 (::1), even when those adapters are turned off. Forcing Windows 8 compatibility likely changes the networking API calls the app uses under the hood, bypassing the issue.