7
5
Fork
You've already forked apple
1

First connect attempt after launch fails with cannotStartTunnel (OpenVPN), second attempt succeeds #600

Open
opened 2026年06月22日 12:17:32 +02:00 by dmaier · 5 comments

macOS app 4.1.3 (2456), connecting to surf.eduvpn.nl. Profile is OpenVPN.

First connect attempt after launching the app always fails.
It goes Configuring → Connecting, sits for ~7s, then disconnects with cannotStartTunnel.
Immediately hitting connect again works — connects in under a second. I think I can reproduce this on every launch.
I checked the following:

  • Not firewall-related (block-all is off, both eduVPN entries are Allow in socketfilterfw)
  • Survives an app reset and a reinstall.
  • No TCP-only option in 4.1.x to test whether forcing TCP avoids it (see #595).

Relevant app log lines from a failing-then-succeeding sequence:

2026年06月22日 10:19:54.846 initializeTunnelManager: tunnelManager does not have saved server info
2026年06月22日 10:19:57.173 ServerDetailViewModel.init: Server: https://surf.eduvpn.nl/, Connection status: Invalid
2026年06月22日 10:19:57.309 proceedToConnect(shouldPreferTCP:): shouldPreferTCP = false, state = notStarted
2026年06月22日 10:19:57.309 State changed to Contacting the server... (from Not connected)
2026年06月22日 10:19:57.712 State changed to Configuring... (from Contacting the server...)
2026年06月22日 10:19:57.712 proceedToConnect(shouldPreferTCP:): Got openVPN VPN config with shouldFailover = true
2026年06月22日 10:20:00.561 Connection status: disconnected
2026年06月22日 10:20:00.561 State changed to Not connected (from Configuring...)
2026年06月22日 10:20:00.601 Connection status: connecting
2026年06月22日 10:20:00.602 State changed to Connecting... (from Not connected)
2026年06月22日 10:20:07.725 Connection status: diconnecting
2026年06月22日 10:20:07.726 State changed to Disconnecting... (from Connecting...)
2026年06月22日 10:20:07.760 Connection status: disconnected
2026年06月22日 10:20:07.760 State changed to Not connected (from Disconnecting...)
2026年06月22日 10:20:07.785 Error: ServerDetailViewModel: proceedToConnect(shouldPreferTCP:): Error: cannotStartTunnel 
2026年06月22日 10:21:11.257 proceedToConnect(shouldPreferTCP:): shouldPreferTCP = false, state = notConnected
2026年06月22日 10:21:11.257 State changed to Contacting the server... (from Not connected)
2026年06月22日 10:21:11.426 State changed to Configuring... (from Contacting the server...)
2026年06月22日 10:21:11.426 proceedToConnect(shouldPreferTCP:): Got openVPN VPN config with shouldFailover = true
2026年06月22日 10:21:11.482 Connection status: connecting
2026年06月22日 10:21:11.482 State changed to Connecting... (from Configuring...)
2026年06月22日 10:21:12.267 Connection status: connected
2026年06月22日 10:21:12.268 State changed to Connected (from Connecting...)

The 7s-then-abort on the first attempt looks like the failover probe timing out rather than failing over. The config has shouldFailover = true.

Possibly related: #586 (first connect fails, but is phrased specifically towards menu bar + multiple profiles), #595 (TCP-only removed).
Happy to provide full logs or whatever info you need.

macOS app 4.1.3 (2456), connecting to surf.eduvpn.nl. Profile is OpenVPN. First connect attempt after launching the app always fails. It goes Configuring → Connecting, sits for ~7s, then disconnects with cannotStartTunnel. Immediately hitting connect again works — connects in under a second. I think I can reproduce this on every launch. I checked the following: * Not firewall-related (block-all is off, both eduVPN entries are Allow in socketfilterfw) * Survives an app reset and a reinstall. * No TCP-only option in 4.1.x to test whether forcing TCP avoids it (see #595). Relevant app log lines from a failing-then-succeeding sequence: ```bash 2026年06月22日 10:19:54.846 initializeTunnelManager: tunnelManager does not have saved server info 2026年06月22日 10:19:57.173 ServerDetailViewModel.init: Server: https://surf.eduvpn.nl/, Connection status: Invalid 2026年06月22日 10:19:57.309 proceedToConnect(shouldPreferTCP:): shouldPreferTCP = false, state = notStarted 2026年06月22日 10:19:57.309 State changed to Contacting the server... (from Not connected) 2026年06月22日 10:19:57.712 State changed to Configuring... (from Contacting the server...) 2026年06月22日 10:19:57.712 proceedToConnect(shouldPreferTCP:): Got openVPN VPN config with shouldFailover = true 2026年06月22日 10:20:00.561 Connection status: disconnected 2026年06月22日 10:20:00.561 State changed to Not connected (from Configuring...) 2026年06月22日 10:20:00.601 Connection status: connecting 2026年06月22日 10:20:00.602 State changed to Connecting... (from Not connected) 2026年06月22日 10:20:07.725 Connection status: diconnecting 2026年06月22日 10:20:07.726 State changed to Disconnecting... (from Connecting...) 2026年06月22日 10:20:07.760 Connection status: disconnected 2026年06月22日 10:20:07.760 State changed to Not connected (from Disconnecting...) 2026年06月22日 10:20:07.785 Error: ServerDetailViewModel: proceedToConnect(shouldPreferTCP:): Error: cannotStartTunnel 2026年06月22日 10:21:11.257 proceedToConnect(shouldPreferTCP:): shouldPreferTCP = false, state = notConnected 2026年06月22日 10:21:11.257 State changed to Contacting the server... (from Not connected) 2026年06月22日 10:21:11.426 State changed to Configuring... (from Contacting the server...) 2026年06月22日 10:21:11.426 proceedToConnect(shouldPreferTCP:): Got openVPN VPN config with shouldFailover = true 2026年06月22日 10:21:11.482 Connection status: connecting 2026年06月22日 10:21:11.482 State changed to Connecting... (from Configuring...) 2026年06月22日 10:21:12.267 Connection status: connected 2026年06月22日 10:21:12.268 State changed to Connected (from Connecting...) ``` The 7s-then-abort on the first attempt looks like the failover probe timing out rather than failing over. The config has shouldFailover = true. Possibly related: #586 (first connect fails, but is phrased specifically towards menu bar + multiple profiles), #595 (TCP-only removed). Happy to provide full logs or whatever info you need.
Member
Copy link

Usually a reboot fixes the "cannot start tunnnel" but if we can fix it structurally that would be welcome

Usually a reboot fixes the "cannot start tunnnel" but if we can fix it structurally that would be welcome
Collaborator
Copy link

Can we see the connection log as well?

Can we see the connection log as well?
Author
Copy link

I lost the connection log for the 10:19 event ( I think because I reset the app a few times after to check if that helps), but as it happened again after I can give you both logs for another time it happened:

App log:

2026年06月22日 12:01:44.094 State changed to Select a profile (from Contacting the server...)
2026年06月22日 12:01:46.104 proceedToConnect(shouldPreferTCP:): shouldPreferTCP = false, state = waitingForProfileSelection
2026年06月22日 12:01:46.105 State changed to Contacting the server... (from Select a profile)
2026年06月22日 12:01:46.194 State changed to Configuring... (from Contacting the server...)
2026年06月22日 12:01:46.194 proceedToConnect(shouldPreferTCP:): Got openVPN VPN config with shouldFailover = true
2026年06月22日 12:01:48.334 Connection status: disconnected
2026年06月22日 12:01:48.335 State changed to Not connected (from Configuring...)
2026年06月22日 12:01:48.389 Connection status: connecting
2026年06月22日 12:01:48.389 State changed to Connecting... (from Not connected)
2026年06月22日 12:01:48.389 State changed to Connecting... (from Not connected)
2026年06月22日 12:01:55.102 Connection status: diconnecting
2026年06月22日 12:01:55.102 State changed to Disconnecting... (from Connecting...)
2026年06月22日 12:01:55.102 State changed to Disconnecting... (from Connecting...)
2026年06月22日 12:01:55.160 Connection status: disconnected
2026年06月22日 12:01:55.160 State changed to Not connected (from Disconnecting...)
2026年06月22日 12:01:55.160 State changed to Not connected (from Disconnecting...)
2026年06月22日 12:01:55.185 Error: ServerDetailViewModel: proceedToConnect(shouldPreferTCP:): Error: cannotStartTunnel 
2026年06月22日 12:02:40.885 proceedToConnect(shouldPreferTCP:): shouldPreferTCP = false, state = notConnected
2026年06月22日 12:02:40.885 State changed to Contacting the server... (from Not connected)
2026年06月22日 12:02:41.096 State changed to Configuring... (from Contacting the server...)
2026年06月22日 12:02:41.097 proceedToConnect(shouldPreferTCP:): Got openVPN VPN config with shouldFailover = true
2026年06月22日 12:02:41.170 Connection status: connecting
2026年06月22日 12:02:41.170 State changed to Connecting... (from Not connected)
2026年06月22日 12:02:41.170 State changed to Connecting... (from Configuring...)
2026年06月22日 12:02:41.951 Connection status: connected
2026年06月22日 12:02:41.951 State changed to Connected (from Connecting...)
2026年06月22日 12:02:41.951 State changed to Connected (from Connecting...)

Connection log:

2026年06月22日 12:01:48.565 App version: 4.1.3 (2456)
2026年06月22日 12:01:48.566 startTunnel (options: ["AuthMethod": Password, "ServerAddress": https://surf.eduvpn.nl/, "isStartedByApp": 1])
2026年06月22日 12:01:48.566 VPN protocol is OpenVPN
2026年06月22日 12:01:48.566 Tunnel is started through the app
2026年06月22日 12:01:48.567 Starting OpenVPN tunnel
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.568 INFO Configuration.print():558 - 	Remotes: [medewerkers.surf.eduvpn.nl:UDP:1194, medewerkers.surf.eduvpn.nl:TCP:1194]
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():559 - 	Cipher: AES-128-CBC
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():560 - 	Digest: HMAC-SHA1
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():561 - 	Compression framing: disabled
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():562 - 	Username authentication: false
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():566 - 	Compression algorithm: disabled
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():569 - 	Client verification: enabled
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():574 - 	TLS wrapping: crypt
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():579 - 	TLS security level: 3
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():586 - 	Keep-alive interval: never
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():591 - 	Keep-alive timeout: never
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():596 - 	Renegotiation: never
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():599 - 	Server EKU verification: enabled
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():606 - 	Host SAN verification: disabled
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():614 - 	Gateway: not configured
2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():635 - 	DNS: not configured
2026年06月22日 12:01:48.571 2026年06月22日 12:01:48.571 INFO Configuration.print():656 - 	MTU: default
2026年06月22日 12:01:48.571 2026年06月22日 12:01:48.571 INFO OpenVPN+ProviderConfiguration.print():88 - Debug: false
2026年06月22日 12:01:48.571 2026年06月22日 12:01:48.571 INFO OpenVPN+ProviderConfiguration.print():89 - Masks private data: false
2026年06月22日 12:01:48.588 2026年06月22日 12:01:48.588 INFO OpenVPNAdapter.connectTunnel():282 - Creating link session
2026年06月22日 12:01:51.788 2026年06月22日 12:01:51.788 ERROR ResolvedRemote.handleResult():75 - DNS resolution failed!
2026年06月22日 12:01:51.789 2026年06月22日 12:01:51.788 ERROR ConnectionStrategy.createSocket():118 - No endpoints available
2026年06月22日 12:01:51.789 2026年06月22日 12:01:51.789 INFO OpenVPNAdapter.connectTunnel():282 - Creating link session
--- EOF ---
2026年06月22日 12:02:41.350 App version: 4.1.3 (2456)
2026年06月22日 12:02:41.351 startTunnel (options: ["ServerAddress": https://surf.eduvpn.nl/, "AuthMethod": Password, "isStartedByApp": 1])
2026年06月22日 12:02:41.351 VPN protocol is OpenVPN
2026年06月22日 12:02:41.351 Tunnel is started through the app
2026年06月22日 12:02:41.351 Starting OpenVPN tunnel
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.353 INFO Configuration.print():558 - 	Remotes: [medewerkers.surf.eduvpn.nl:UDP:1195, medewerkers.surf.eduvpn.nl:TCP:1194]
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():559 - 	Cipher: AES-128-CBC
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():560 - 	Digest: HMAC-SHA1
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():561 - 	Compression framing: disabled
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():562 - 	Username authentication: false
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():566 - 	Compression algorithm: disabled
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():569 - 	Client verification: enabled
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():574 - 	TLS wrapping: crypt
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():579 - 	TLS security level: 3
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():586 - 	Keep-alive interval: never
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():591 - 	Keep-alive timeout: never
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():596 - 	Renegotiation: never
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():599 - 	Server EKU verification: enabled
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():606 - 	Host SAN verification: disabled
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():614 - 	Gateway: not configured
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():635 - 	DNS: not configured
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():656 - 	MTU: default
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO OpenVPN+ProviderConfiguration.print():88 - Debug: false
2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO OpenVPN+ProviderConfiguration.print():89 - Masks private data: false
2026年06月22日 12:02:41.373 2026年06月22日 12:02:41.373 INFO OpenVPNAdapter.connectTunnel():282 - Creating link session
2026年06月22日 12:02:41.383 2026年06月22日 12:02:41.383 INFO OpenVPNAdapter.connectTunnel():315 - Will connect to 145.100.179.27:1195
2026年06月22日 12:02:41.383 2026年06月22日 12:02:41.383 INFO OpenVPNAdapter.connectTunnel():316 - Socket type is NEUDPSocket
2026年06月22日 12:02:41.383 2026年06月22日 12:02:41.383 INFO OpenVPNSession.setLink():243 - Starting VPN session
2026年06月22日 12:02:41.383 2026年06月22日 12:02:41.383 INFO OpenVPNSession.hardReset():649 - Send hard reset
2026年06月22日 12:02:41.596 2026年06月22日 12:02:41.596 INFO OpenVPNSession.setupEncryption():1163 - 	Negotiated cipher: AES-256-GCM
2026年06月22日 12:02:41.596 2026年06月22日 12:02:41.596 INFO OpenVPNSession.setupEncryption():1174 - 	Negotiated keep-alive interval: 10s
2026年06月22日 12:02:41.596 2026年06月22日 12:02:41.596 INFO OpenVPNSession.setupEncryption():1177 - 	Negotiated keep-alive timeout: 1m
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():515 - Session did start
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():517 - Returned ifconfig parameters:
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():518 - 	Remote: 145.100.179.27
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():519 - 	IPv4: addr 145.90.232.x netmask 255.255.255.128 gw 145.90.232.129 routes ["{0.0.0.0/0.0.0.0 145.90.232.129}"] excluding []
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():520 - 	IPv6: addr 2001:610:450:b0::1:xx/112 gw 2001:610:450:b0::1:1 routes [] excluding []
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():522 - 	Gateway: ["IPv4", "IPv6"]
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():527 - 	DNS: ["145.145.145.146", "2001:610:145:145:145:146::"]
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():534 - 	Search domains: not configured
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.bringNetworkUp():628 - Routing.IPv4: Setting default gateway to 145.90.232.129
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.bringNetworkUp():635 - Routing.IPv4: Adding route 0.0.0.0/0.0.0.0 -> 145.90.232.129
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.bringNetworkUp():665 - Routing.IPv6: Setting default gateway to 2001:610:450:b0::1:1
2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.bringNetworkUp():742 - DNS: Using servers ["145.145.145.146", "2001:610:145:145:145:146::"]
2026年06月22日 12:02:41.934 2026年06月22日 12:02:41.934 INFO OpenVPNAdapter.reasserting():149 - Reasserting flag cleared
2026年06月22日 12:02:41.935 2026年06月22日 12:02:41.934 INFO OpenVPNAdapter.sessionDidStart():570 - Tunnel interface is now UP
2026年06月22日 12:02:41.935 2026年06月22日 12:02:41.935 INFO OpenVPNAdapter.sessionDidStart():580 - Setting up path monitor
2026年06月22日 12:02:41.950 2026年06月22日 12:02:41.950 INFO OpenVPNAdapter.sessionDidStart():583 - Network change detected with satisfied route and interface order [en0, en0, utun4]
2026年06月22日 12:02:42.243 2026年06月22日 12:02:42.242 INFO OpenVPNAdapter.sessionDidStart():583 - Network change detected with satisfied route and interface order [en0, en0, utun4]
2026年06月22日 12:02:44.918 2026年06月22日 12:02:44.918 INFO OpenVPNAdapter.sessionDidStart():583 - Network change detected with satisfied route and interface order [en0, en0, utun4]
2026年06月22日 12:02:52.592 2026年06月22日 12:02:52.592 INFO OpenVPNSession.ping():600 - Sending ping every 10.0 seconds
I lost the connection log for the 10:19 event ( I think because I reset the app a few times after to check if that helps), but as it happened again after I can give you both logs for another time it happened: App log: ```bash 2026年06月22日 12:01:44.094 State changed to Select a profile (from Contacting the server...) 2026年06月22日 12:01:46.104 proceedToConnect(shouldPreferTCP:): shouldPreferTCP = false, state = waitingForProfileSelection 2026年06月22日 12:01:46.105 State changed to Contacting the server... (from Select a profile) 2026年06月22日 12:01:46.194 State changed to Configuring... (from Contacting the server...) 2026年06月22日 12:01:46.194 proceedToConnect(shouldPreferTCP:): Got openVPN VPN config with shouldFailover = true 2026年06月22日 12:01:48.334 Connection status: disconnected 2026年06月22日 12:01:48.335 State changed to Not connected (from Configuring...) 2026年06月22日 12:01:48.389 Connection status: connecting 2026年06月22日 12:01:48.389 State changed to Connecting... (from Not connected) 2026年06月22日 12:01:48.389 State changed to Connecting... (from Not connected) 2026年06月22日 12:01:55.102 Connection status: diconnecting 2026年06月22日 12:01:55.102 State changed to Disconnecting... (from Connecting...) 2026年06月22日 12:01:55.102 State changed to Disconnecting... (from Connecting...) 2026年06月22日 12:01:55.160 Connection status: disconnected 2026年06月22日 12:01:55.160 State changed to Not connected (from Disconnecting...) 2026年06月22日 12:01:55.160 State changed to Not connected (from Disconnecting...) 2026年06月22日 12:01:55.185 Error: ServerDetailViewModel: proceedToConnect(shouldPreferTCP:): Error: cannotStartTunnel 2026年06月22日 12:02:40.885 proceedToConnect(shouldPreferTCP:): shouldPreferTCP = false, state = notConnected 2026年06月22日 12:02:40.885 State changed to Contacting the server... (from Not connected) 2026年06月22日 12:02:41.096 State changed to Configuring... (from Contacting the server...) 2026年06月22日 12:02:41.097 proceedToConnect(shouldPreferTCP:): Got openVPN VPN config with shouldFailover = true 2026年06月22日 12:02:41.170 Connection status: connecting 2026年06月22日 12:02:41.170 State changed to Connecting... (from Not connected) 2026年06月22日 12:02:41.170 State changed to Connecting... (from Configuring...) 2026年06月22日 12:02:41.951 Connection status: connected 2026年06月22日 12:02:41.951 State changed to Connected (from Connecting...) 2026年06月22日 12:02:41.951 State changed to Connected (from Connecting...) ``` Connection log: ```bash 2026年06月22日 12:01:48.565 App version: 4.1.3 (2456) 2026年06月22日 12:01:48.566 startTunnel (options: ["AuthMethod": Password, "ServerAddress": https://surf.eduvpn.nl/, "isStartedByApp": 1]) 2026年06月22日 12:01:48.566 VPN protocol is OpenVPN 2026年06月22日 12:01:48.566 Tunnel is started through the app 2026年06月22日 12:01:48.567 Starting OpenVPN tunnel 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.568 INFO Configuration.print():558 - Remotes: [medewerkers.surf.eduvpn.nl:UDP:1194, medewerkers.surf.eduvpn.nl:TCP:1194] 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():559 - Cipher: AES-128-CBC 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():560 - Digest: HMAC-SHA1 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():561 - Compression framing: disabled 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():562 - Username authentication: false 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():566 - Compression algorithm: disabled 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():569 - Client verification: enabled 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():574 - TLS wrapping: crypt 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():579 - TLS security level: 3 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():586 - Keep-alive interval: never 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():591 - Keep-alive timeout: never 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():596 - Renegotiation: never 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():599 - Server EKU verification: enabled 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():606 - Host SAN verification: disabled 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():614 - Gateway: not configured 2026年06月22日 12:01:48.570 2026年06月22日 12:01:48.570 INFO Configuration.print():635 - DNS: not configured 2026年06月22日 12:01:48.571 2026年06月22日 12:01:48.571 INFO Configuration.print():656 - MTU: default 2026年06月22日 12:01:48.571 2026年06月22日 12:01:48.571 INFO OpenVPN+ProviderConfiguration.print():88 - Debug: false 2026年06月22日 12:01:48.571 2026年06月22日 12:01:48.571 INFO OpenVPN+ProviderConfiguration.print():89 - Masks private data: false 2026年06月22日 12:01:48.588 2026年06月22日 12:01:48.588 INFO OpenVPNAdapter.connectTunnel():282 - Creating link session 2026年06月22日 12:01:51.788 2026年06月22日 12:01:51.788 ERROR ResolvedRemote.handleResult():75 - DNS resolution failed! 2026年06月22日 12:01:51.789 2026年06月22日 12:01:51.788 ERROR ConnectionStrategy.createSocket():118 - No endpoints available 2026年06月22日 12:01:51.789 2026年06月22日 12:01:51.789 INFO OpenVPNAdapter.connectTunnel():282 - Creating link session --- EOF --- 2026年06月22日 12:02:41.350 App version: 4.1.3 (2456) 2026年06月22日 12:02:41.351 startTunnel (options: ["ServerAddress": https://surf.eduvpn.nl/, "AuthMethod": Password, "isStartedByApp": 1]) 2026年06月22日 12:02:41.351 VPN protocol is OpenVPN 2026年06月22日 12:02:41.351 Tunnel is started through the app 2026年06月22日 12:02:41.351 Starting OpenVPN tunnel 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.353 INFO Configuration.print():558 - Remotes: [medewerkers.surf.eduvpn.nl:UDP:1195, medewerkers.surf.eduvpn.nl:TCP:1194] 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():559 - Cipher: AES-128-CBC 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():560 - Digest: HMAC-SHA1 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():561 - Compression framing: disabled 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():562 - Username authentication: false 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():566 - Compression algorithm: disabled 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():569 - Client verification: enabled 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():574 - TLS wrapping: crypt 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():579 - TLS security level: 3 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():586 - Keep-alive interval: never 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():591 - Keep-alive timeout: never 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():596 - Renegotiation: never 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():599 - Server EKU verification: enabled 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():606 - Host SAN verification: disabled 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():614 - Gateway: not configured 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():635 - DNS: not configured 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO Configuration.print():656 - MTU: default 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO OpenVPN+ProviderConfiguration.print():88 - Debug: false 2026年06月22日 12:02:41.355 2026年06月22日 12:02:41.355 INFO OpenVPN+ProviderConfiguration.print():89 - Masks private data: false 2026年06月22日 12:02:41.373 2026年06月22日 12:02:41.373 INFO OpenVPNAdapter.connectTunnel():282 - Creating link session 2026年06月22日 12:02:41.383 2026年06月22日 12:02:41.383 INFO OpenVPNAdapter.connectTunnel():315 - Will connect to 145.100.179.27:1195 2026年06月22日 12:02:41.383 2026年06月22日 12:02:41.383 INFO OpenVPNAdapter.connectTunnel():316 - Socket type is NEUDPSocket 2026年06月22日 12:02:41.383 2026年06月22日 12:02:41.383 INFO OpenVPNSession.setLink():243 - Starting VPN session 2026年06月22日 12:02:41.383 2026年06月22日 12:02:41.383 INFO OpenVPNSession.hardReset():649 - Send hard reset 2026年06月22日 12:02:41.596 2026年06月22日 12:02:41.596 INFO OpenVPNSession.setupEncryption():1163 - Negotiated cipher: AES-256-GCM 2026年06月22日 12:02:41.596 2026年06月22日 12:02:41.596 INFO OpenVPNSession.setupEncryption():1174 - Negotiated keep-alive interval: 10s 2026年06月22日 12:02:41.596 2026年06月22日 12:02:41.596 INFO OpenVPNSession.setupEncryption():1177 - Negotiated keep-alive timeout: 1m 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():515 - Session did start 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():517 - Returned ifconfig parameters: 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():518 - Remote: 145.100.179.27 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():519 - IPv4: addr 145.90.232.x netmask 255.255.255.128 gw 145.90.232.129 routes ["{0.0.0.0/0.0.0.0 145.90.232.129}"] excluding [] 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():520 - IPv6: addr 2001:610:450:b0::1:xx/112 gw 2001:610:450:b0::1:1 routes [] excluding [] 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():522 - Gateway: ["IPv4", "IPv6"] 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():527 - DNS: ["145.145.145.146", "2001:610:145:145:145:146::"] 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.sessionDidStart():534 - Search domains: not configured 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.bringNetworkUp():628 - Routing.IPv4: Setting default gateway to 145.90.232.129 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.bringNetworkUp():635 - Routing.IPv4: Adding route 0.0.0.0/0.0.0.0 -> 145.90.232.129 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.bringNetworkUp():665 - Routing.IPv6: Setting default gateway to 2001:610:450:b0::1:1 2026年06月22日 12:02:41.597 2026年06月22日 12:02:41.597 INFO OpenVPNAdapter.bringNetworkUp():742 - DNS: Using servers ["145.145.145.146", "2001:610:145:145:145:146::"] 2026年06月22日 12:02:41.934 2026年06月22日 12:02:41.934 INFO OpenVPNAdapter.reasserting():149 - Reasserting flag cleared 2026年06月22日 12:02:41.935 2026年06月22日 12:02:41.934 INFO OpenVPNAdapter.sessionDidStart():570 - Tunnel interface is now UP 2026年06月22日 12:02:41.935 2026年06月22日 12:02:41.935 INFO OpenVPNAdapter.sessionDidStart():580 - Setting up path monitor 2026年06月22日 12:02:41.950 2026年06月22日 12:02:41.950 INFO OpenVPNAdapter.sessionDidStart():583 - Network change detected with satisfied route and interface order [en0, en0, utun4] 2026年06月22日 12:02:42.243 2026年06月22日 12:02:42.242 INFO OpenVPNAdapter.sessionDidStart():583 - Network change detected with satisfied route and interface order [en0, en0, utun4] 2026年06月22日 12:02:44.918 2026年06月22日 12:02:44.918 INFO OpenVPNAdapter.sessionDidStart():583 - Network change detected with satisfied route and interface order [en0, en0, utun4] 2026年06月22日 12:02:52.592 2026年06月22日 12:02:52.592 INFO OpenVPNSession.ping():600 - Sending ping every 10.0 seconds ```
Collaborator
Copy link

Thanks @dmaier. The logs are very helpful.

From the log, it looks like the DNS resolution of the VPN server times out the first time (not resolved in 3 secs). I'm unable to reproduce it though.

Do you also use WireGuard protocol on the same server? If so, did you see any problems using WireGuard (though the eduVPN macOS app v4.1.3)?

Thanks @dmaier. The logs are very helpful. From the log, it looks like the DNS resolution of the VPN server times out the first time (not resolved in 3 secs). I'm unable to reproduce it though. Do you also use WireGuard protocol on the same server? If so, did you see any problems using WireGuard (though the eduVPN macOS app v4.1.3)?
Author
Copy link

Thanks. We do have WireGuard on the same server and using that profile today: first try, handshake completes, no issues.

 10:03:41.465 VPN protocol is WireGuard
 10:03:41.594 Interface state was Down, requested Up, now Up
 10:03:41.594 Device started
 10:03:41.596 peer(NKrI...arBc) - Sending handshake initiation
 10:03:41.605 peer(NKrI...arBc) - Received handshake response
 10:03:41.623 peer(NKrI...arBc) - Sending keepalive packet

Regarding the original cold-start DNS timeout issue: I couldn't reproduce it on demand anymore today. I reset the app to try and capture a clean failure followed by a WireGuard success, but every connect attempt after the reset resolved and connected just fine (OpenVPN and WireGuard both). Each OpenVPN start went straight to resolution and connect, e.g.:

 10:11:18.284 OpenVPNAdapter.connectTunnel() - Creating link session
 10:11:18.329 OpenVPNAdapter.connectTunnel() - Will connect to 145.100.179.27:1195
 10:11:18.569 OpenVPNSession.setupEncryption() - Negotiated cipher: AES-256-GCM

No more "DNS resolution failed" / "No endpoints available" today. So I don't have a fresh log for the DNS timeout right now. Happy to grab a clean combined capture if it recurs.

Thanks. We do have WireGuard on the same server and using that profile today: first try, handshake completes, no issues. ```bash 10:03:41.465 VPN protocol is WireGuard 10:03:41.594 Interface state was Down, requested Up, now Up 10:03:41.594 Device started 10:03:41.596 peer(NKrI...arBc) - Sending handshake initiation 10:03:41.605 peer(NKrI...arBc) - Received handshake response 10:03:41.623 peer(NKrI...arBc) - Sending keepalive packet ``` Regarding the original cold-start DNS timeout issue: I couldn't reproduce it on demand anymore today. I reset the app to try and capture a clean failure followed by a WireGuard success, but every connect attempt after the reset resolved and connected just fine (OpenVPN and WireGuard both). Each OpenVPN start went straight to resolution and connect, e.g.: ```bash 10:11:18.284 OpenVPNAdapter.connectTunnel() - Creating link session 10:11:18.329 OpenVPNAdapter.connectTunnel() - Will connect to 145.100.179.27:1195 10:11:18.569 OpenVPNSession.setupEncryption() - Negotiated cipher: AES-256-GCM ``` No more "DNS resolution failed" / "No endpoints available" today. So I don't have a fresh log for the DNS timeout right now. Happy to grab a clean combined capture if it recurs.
Sign in to join this conversation.
No Branch/Tag specified
master
use_common_api
issue_eduvpn_apple_527
developer_id_distribution
internal-3.0.4-i
debug/debug_block_local
bugfix/376
feature/tests
bump-versions
experimental
fix-swiftlint-warnings
redesign
mergetest
feature/289
use-gplv3-with-app-store-exception
release/2.1.7
tunnelkit_keep_tunnel_when_network_is_down
feature/254
feature/includeall
4.1.6
4.1.5
4.1.4
4.1.3
4.1.2
4.1.1
4.1.0
4.0.7
4.0.6
4.0.5
4.0.4
4.0.3
4.0.2
4.0.1
4.0.0
3.1.0
3.0.8
3.0.7
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.9
2.1.7
release/lets-connect-2.1.7-mac
release/lets-connect-2.1.7-ios
ios/v.2.0.1
ios/v2.0.2
ios/v2.0.3
ios/v2.0.4
ios/v2.1.1
mac/v2.1.1
v2.0.4
v2.0.2
v2.0.3
v2.0.0
v2.0.1
v1.0.0
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
3 participants
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
eduVPN/apple#600
Reference in a new issue
eduVPN/apple
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?