[GH-ISSUE #3272] [Bug] GUI hangs on "Reconnecting" after system suspend/resume on Linux (state machine stuck) #1519

Open
opened 2026-10-13 20:44:10 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @ioval01 on GitHub (Oct 11, 2026).
Original GitHub issue: https://github.com/amnezia-vpn/amnezia-client/issues/3272

Describe the bug
После выхода системы из режима сна (systemctl suspend) клиент AmneziaVPN (GUI) бесконечно висит в состоянии «Переподключение…» и никогда не восстанавливает соединение автоматически. Туннель при этом здоров: amneziawg-go успешно проходит handshake, маршруты восстанавливаются. Проблема исключительно во внутренней state machine приложения — она застревает в состоянии Reconnecting и игнорирует собственные попытки переподключиться. Помогает только ручное отключение/подключение в GUI или перезапуск приложения.

To Reproduce
Steps to reproduce the behavior:

  1. Запустить AmneziaVPN и подключиться к self-hosted серверу (протокол AmneziaWG).
  2. Убедиться, что соединение работает (открывается YouTube и другие сайты через туннель).
  3. Перевести систему в режим сна: systemctl suspend.
  4. Разбудить систему (открыть крышку / нажать клавишу).
  5. Не трогая GUI AmneziaVPN, подождать 30–60 секунд.

Expected behavior
Клиент должен автоматически переподключиться после пробуждения системы.

Log files
[2026-10-11 07:06:56.945Z] [DEBUG] AmneziaVPN : Reconnect triggered. Reconnecting to the server
[2026-10-11 07:06:56.946Z] [DEBUG] AmneziaVPN LocalSocketController : Deactivating
[2026-10-11 07:06:56.946Z] [DEBUG] AmneziaVPN : VpnProtocol::setConnectionState "Отключено"
[2026-10-11 07:06:56.955Z] [DEBUG] AmneziaVPN LocalSocketController : Parse command: disconnected
[2026-10-11 07:06:56.955Z] [WARNING] AmneziaVPN : "Reconnect triggered on Reconnecting during inappropriate state: %2; ignoring slot"
[2026-10-11 07:06:59.728Z] [DEBUG] AmneziaVPN : VpnConnection::onConnectionStateChanged: Successfully cleared saved routes
[2026-10-11 07:07:04.002Z] [WARNING] AmneziaVPN : "Reconnect triggered on Reconnecting during inappropriate state: %2; ignoring slot"
[2026-10-11 07:07:04.002Z] [WARNING] AmneziaVPN : "Reconnect triggered on Reconnecting during inappropriate state: %2; ignoring slot"

Screenshots

Desktop:
OS: EndeavourOS (Arch Linux), x86_64, kernel 6.x
Version: AmneziaVPN 5.0.3.0 (de93650), собран 18 Sep 2026
Протокол: AmneziaWG (amneziawg-go userspace daemon, container amnezia-awg2)
Менеджер питания: systemd-logind, systemctl suspend

Smartphone:
Десктопный баг

Server (please complete the following information):
OS: self-hosted, AmneziaWG (amnezia-awg2 container), установлен через Amnezia self-hosted скрипт.
Сервер работает стабильно, handshake проходит успешно после resume — проблема не на стороне сервера.

Additional context
amneziawg-go успешно завершает handshake после пробуждения системы (подтверждено в логах: Handshake completed with: suVVt8+...).
Маршруты 0.0.0.0/1 и 128.0.0.0/1 через amn0 восстанавливаются автоматически.
IP-адрес 10.8.1.10/32 на amn0 восстанавливается автоматически.
Проблема воспроизводится на каждом цикле suspend/resume.
Ручное disconnect/reconnect в GUI немедленно решает проблему — это подтверждает, что туннель, маршруты и сеть в порядке, ломается только state machine приложения.
Дополнительно в логах присутствуют предупреждения Failed to flush DNS при каждом изменении состояния соединения. Вероятно, это связано с тем, что в системе не используется systemd-resolved или resolvconf (Amnezia не находит «подходящий DNS manager»), но это не является причиной зависания — баг воспроизводится независимо от наличия DNS-менеджера.

Originally created by @ioval01 on GitHub (Oct 11, 2026). Original GitHub issue: https://github.com/amnezia-vpn/amnezia-client/issues/3272 **Describe the bug** После выхода системы из режима сна (systemctl suspend) клиент AmneziaVPN (GUI) бесконечно висит в состоянии «Переподключение…» и никогда не восстанавливает соединение автоматически. Туннель при этом здоров: amneziawg-go успешно проходит handshake, маршруты восстанавливаются. Проблема исключительно во внутренней state machine приложения — она застревает в состоянии Reconnecting и игнорирует собственные попытки переподключиться. Помогает только ручное отключение/подключение в GUI или перезапуск приложения. **To Reproduce** Steps to reproduce the behavior: 1) Запустить AmneziaVPN и подключиться к self-hosted серверу (протокол AmneziaWG). 2) Убедиться, что соединение работает (открывается YouTube и другие сайты через туннель). 3) Перевести систему в режим сна: systemctl suspend. 4) Разбудить систему (открыть крышку / нажать клавишу). 5) Не трогая GUI AmneziaVPN, подождать 30–60 секунд. **Expected behavior** Клиент должен автоматически переподключиться после пробуждения системы. **Log files** [2026-10-11 07:06:56.945Z] [DEBUG] AmneziaVPN : Reconnect triggered. Reconnecting to the server [2026-10-11 07:06:56.946Z] [DEBUG] AmneziaVPN LocalSocketController : Deactivating [2026-10-11 07:06:56.946Z] [DEBUG] AmneziaVPN : VpnProtocol::setConnectionState "Отключено" [2026-10-11 07:06:56.955Z] [DEBUG] AmneziaVPN LocalSocketController : Parse command: disconnected [2026-10-11 07:06:56.955Z] [WARNING] AmneziaVPN : "Reconnect triggered on Reconnecting during inappropriate state: %2; ignoring slot" [2026-10-11 07:06:59.728Z] [DEBUG] AmneziaVPN : VpnConnection::onConnectionStateChanged: Successfully cleared saved routes [2026-10-11 07:07:04.002Z] [WARNING] AmneziaVPN : "Reconnect triggered on Reconnecting during inappropriate state: %2; ignoring slot" [2026-10-11 07:07:04.002Z] [WARNING] AmneziaVPN : "Reconnect triggered on Reconnecting during inappropriate state: %2; ignoring slot" **Screenshots** **Desktop:** OS: EndeavourOS (Arch Linux), x86_64, kernel 6.x Version: AmneziaVPN 5.0.3.0 (de93650), собран 18 Sep 2026 Протокол: AmneziaWG (amneziawg-go userspace daemon, container amnezia-awg2) Менеджер питания: systemd-logind, systemctl suspend **Smartphone:** Десктопный баг **Server (please complete the following information):** OS: self-hosted, AmneziaWG (amnezia-awg2 container), установлен через Amnezia self-hosted скрипт. Сервер работает стабильно, handshake проходит успешно после resume — проблема не на стороне сервера. **Additional context** amneziawg-go успешно завершает handshake после пробуждения системы (подтверждено в логах: Handshake completed with: suVVt8+...). Маршруты 0.0.0.0/1 и 128.0.0.0/1 через amn0 восстанавливаются автоматически. IP-адрес 10.8.1.10/32 на amn0 восстанавливается автоматически. Проблема воспроизводится на каждом цикле suspend/resume. Ручное disconnect/reconnect в GUI немедленно решает проблему — это подтверждает, что туннель, маршруты и сеть в порядке, ломается только state machine приложения. Дополнительно в логах присутствуют предупреждения Failed to flush DNS при каждом изменении состояния соединения. Вероятно, это связано с тем, что в системе не используется systemd-resolved или resolvconf (Amnezia не находит «подходящий DNS manager»), но это не является причиной зависания — баг воспроизводится независимо от наличия DNS-менеджера.
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
amnezia-vpn/amnezia-client#1519
No description provided.