Skip to content

Troubleshooting

Windows

Prerequisites check says “openconnect not found”

You installed OpenConnect-GUI but didn't tick the “command-line / console version” component → there's no openconnect.exe. Re-run the installer and enable it. See Install on Windows.

SmartScreen: “Windows protected your PC”

The .exe is unsigned. More info → Run anyway.

Connect shows “connected” but you have no internet / can't reach internal sites

Fixed in v0.1.24. The cause was openconnect being launched without a console, so its route-configuration script (vpnc-script-win.js, run via cscript) hung and the tunnel came up without routes. Make sure you're on the latest release (Configuration → Save once after updating, then Connect).

A connection has to be set up while on battery / nothing happens after Connect

Fixed in v0.1.16 — the Scheduled Task now allows running on battery. Update, then Configuration → Save once to re-register the task.

It connects but takes very long / needs two clicks to disconnect

Fixed in v0.1.25/0.1.26 (the auto-reconnect loop was removed and the teardown moved off the UI thread). Update to the latest release.

See what happened

Settings → Maintenance → Open log (or the Show log link on a failed connect) shows the full connect log. Report issues with that log attached.

Linux

Two tray icons after login

An older standalone tray is still autostarting. Remove its entry: rm ~/.config/autostart/vpn-tray.desktop and pkill -f vpn-tray.py.

ModuleNotFoundError: No module named 'PyQt6'

Reinstall so the dependency is pulled: uv pip install -e . (PyQt6 is a dependency on Linux/macOS) — or uv pip install PyQt6.

Running it blocks the terminal

That's normal for a foreground GUI. Start it detached (setsid python -m automatic_openconnect </dev/null &>/dev/null &) or enable Autostart in the tray menu so the desktop launches it at login.

Disconnect asks for a sudo password / fails

The passwordless-sudo rule is missing or wrong. See the sudoers step in Install on Linux.

Prebuilt binary won't start

PyInstaller+Qt on Linux can hit platform-plugin issues. Use the source install (uv pip install -e .) — it's the verified path.

Both / general

2FA step is rejected

The stored TOTP seed is wrong (you may have saved the 6-digit code instead of the long Base32 seed). Re-import it — see Two-factor setup. Verify with oathtool --totp -b <SEED>.

Login window opens but doesn't auto-fill

The credentials aren't in the keyring under the exact email you connect with. Re-enter them in the setup dialog (or python -m automatic_openconnect.secrets set --email <you>).

The login page changed and auto-fill broke

The Keycloak field selectors live in ~/.config/openconnect-sso/config.toml. They may need updating if your IdP's login page changes.