==> pf=macOS; os=15.7.7; hw=Mac14,9; pd=ProtonVPN; vn=6.5.1 (3106797.2605011144); id=D2E7FBB9-E532-5A8D-9A71-BDDED737F4E8 2026-09-10T15:42:47.149Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 149.50.211.169 on port 443 | 2026-09-10T15:42:47.149Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 149.50.211.169 on port 1224 | 2026-09-10T15:42:47.149Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 149.50.211.169 on port 4500 | 2026-09-10T15:42:47.270Z | DEBUG | | Telemetry event scheduled: { "Event" : "vpn_disconnection", "MeasurementGroup" : "vpn.any.connection", "Dimensions" : { "network_type" : "wifi", "vpn_country" : "JP", "user_country" : "CN", "server" : "JP#166", "port" : "88", "isp" : "China Unicom", "protocol" : "wireguard_udp", "vpn_trigger" : "new_connection", "outcome" : "success", "vpn_status" : "on", "user_tier" : "paid", "server_features" : "p2p,streaming,ipv6" }, "Values" : { "session_length" : 163400 } } | 2026-09-10T15:42:50.786Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:42:52.151Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 1224 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:51567->149.50.211.169:1224: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:51567->149.50.211.169:1224: i/o timeout}) | 2026-09-10T15:42:52.151Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 443 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:63240->149.50.211.169:443: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:63240->149.50.211.169:443: i/o timeout}) | 2026-09-10T15:42:52.151Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 4500 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:59045->149.50.211.169:4500: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:59045->149.50.211.169:4500: i/o timeout}) | 2026-09-10T15:42:52.151Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 88 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:58413->149.50.211.169:88: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:58413->149.50.211.169:88: i/o timeout}) | 2026-09-10T15:42:52.151Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 500 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:51838->149.50.211.169:500: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:51838->149.50.211.169:500: i/o timeout}) | 2026-09-10T15:42:52.151Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 51820 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:63144->149.50.211.169:51820: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:63144->149.50.211.169:51820: i/o timeout}) | 2026-09-10T15:42:52.151Z | ERROR | CONN.CONNECT:SCAN | No working port found on Wireguard | 2026-09-10T15:42:52.151Z | DEBUG | CONN.CONNECT:SCAN | No Wireguard ports responded when trying to get the best port, waiting a bit and trying one more time. | 2026-09-10T15:42:53.218Z | DEBUG | CONN.CONNECT | Retrying port selection | 2026-09-10T15:42:53.218Z | DEBUG | CONN.CONNECT:SCAN | Getting best port for ServerIp(id: "eGclHlqQkEJMlj-Hksl9G6NAobUnqkmjKU6PhOZCWSFzozSIrwYU5YoRm6E6V69CN668Odvvr_IDe4Q7Hf7fpg==", entryIp: Optional("149.50.211.169"), exitIp: "149.50.211.169", domain: "node-sg-34.protonvpn.net", status: 1, label: Optional("19"), x25519PublicKey: Optional("TrhdyC23yM5oNjMN1YCDdqrgrQZpT0ZqFBU4yU8l3D4="), protocolEntries: nil) on WireGuard | 2026-09-10T15:42:53.218Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 149.50.211.169 on port 88 | 2026-09-10T15:42:53.218Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 149.50.211.169 on port 1224 | 2026-09-10T15:42:53.218Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 149.50.211.169 on port 443 | 2026-09-10T15:42:53.218Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 149.50.211.169 on port 51820 | 2026-09-10T15:42:53.218Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 149.50.211.169 on port 4500 | 2026-09-10T15:42:53.218Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 149.50.211.169 on port 500 | 2026-09-10T15:42:56.880Z | INFO | OS | applicationDidResignActive | 2026-09-10T15:42:57.503Z | INFO | OS | applicationDidBecomeActive | 2026-09-10T15:42:58.220Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 51820 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:56493->149.50.211.169:51820: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:56493->149.50.211.169:51820: i/o timeout}) | 2026-09-10T15:42:58.220Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 500 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:49296->149.50.211.169:500: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:49296->149.50.211.169:500: i/o timeout}) | 2026-09-10T15:42:58.220Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 443 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:60802->149.50.211.169:443: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:60802->149.50.211.169:443: i/o timeout}) | 2026-09-10T15:42:58.220Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 4500 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:58327->149.50.211.169:4500: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:58327->149.50.211.169:4500: i/o timeout}) | 2026-09-10T15:42:58.220Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 1224 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:49746->149.50.211.169:1224: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:49746->149.50.211.169:1224: i/o timeout}) | 2026-09-10T15:42:58.220Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 149.50.211.169 on port 88 (Error: Error Domain=go Code=1 "read udp 10.2.0.2:57780->149.50.211.169:88: i/o timeout" UserInfo={NSLocalizedDescription=read udp 10.2.0.2:57780->149.50.211.169:88: i/o timeout}) | 2026-09-10T15:42:58.220Z | ERROR | CONN.CONNECT:SCAN | No working port found on Wireguard | 2026-09-10T15:42:58.220Z | DEBUG | CONN.CONNECT:SCAN | No Wireguard ports responded even on second attempt, returning ports at random | 2026-09-10T15:42:58.220Z | INFO | CONN.CONNECT | Connecting with wireGuard(Domain.WireGuardTransport.udp) to SG#238 via Optional("149.50.211.169"):[500, 88, 443, 4500, 51820, 1224] | 2026-09-10T15:42:58.224Z | INFO | USER_CERT | Using existing vpn authentication keys | 2026-09-10T15:42:58.227Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.udp)"} 2026-09-10T15:42:58.227Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:42:58.227Z | INFO | LOCAL_AGENT:LOG | LocalAgent: closing | 2026-09-10T15:42:58.227Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to Disconnected | 2026-09-10T15:42:58.227Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to disconnected | 2026-09-10T15:42:58.227Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in disconnected state | 2026-09-10T15:42:58.304Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:42:58.671Z | DEBUG | PROTOCOL | XPC connection interrupted for mach service J6S6Q257EK.group.ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:42:58.671Z | DEBUG | PROTOCOL | XPC connection interrupted for mach service J6S6Q257EK.group.ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:42:58.864Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnecting from: 45.87.213.210 | {"oldState":"VPN state - Connected to: 45.87.213.210","state":"VPN state - Disconnecting from: 45.87.213.210","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.udp))"} 2026-09-10T15:42:59.054Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnected | {"state":"VPN state - Disconnected","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.udp))","oldState":"VPN state - Disconnecting from: 45.87.213.210"} 2026-09-10T15:42:59.054Z | INFO | CONN.CONNECT | About to start connection process | 2026-09-10T15:42:59.054Z | DEBUG | LOCAL_AGENT | Disconnecting Local agent | 2026-09-10T15:42:59.054Z | DEBUG | LOCAL_AGENT | Stopping status monitoring. WasMonitoring: true | 2026-09-10T15:42:59.263Z | INFO | CONN.CONNECT | Creating connection configuration | 2026-09-10T15:42:59.577Z | INFO | SYSEX | Credentials set result (wg): success | 2026-09-10T15:42:59.577Z | INFO | CONN.CONNECT | Configuring connection | 2026-09-10T15:42:59.588Z | INFO | CONN.CONNECT | Loading connection configuration | 2026-09-10T15:42:59.588Z | INFO | CONN.CONNECT | Starting VPN tunnel | 2026-09-10T15:42:59.600Z | DEBUG | CONN | Server change observer received status | {"connection":"","status":"connecting","requestId":"AE94FA5A-2915-4E5F-8B0F-611FE123092E"} 2026-09-10T15:42:59.600Z | INFO | CONN:CHANGE | VPN update state to VPN state - Connecting to: 149.50.211.169 | {"currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.udp))","state":"VPN state - Connecting to: 149.50.211.169","oldState":"VPN state - Disconnected"} 2026-09-10T15:42:59.733Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:42:59.733Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:42:59.733Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:42:59.741Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:42:59.772Z | ERROR | NET:RESPONSE | Request failed | {"url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate","method":"POST","error":"Error Domain=ch.protonvpn.mac Code=111222333 \"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked\" UserInfo={NSUnderlyingError=0x6000028aca50 {Error Domain=NSURLErrorDomain Code=-1001 \"The request timed out.\" UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x6000028ac720 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 \"(null)\" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<52>, _NSURLErrorRelatedURLSessionTaskErrorKey=(\n \"LocalDataTask .<52>\"\n), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, NSErrorFailingURLKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, _kCFStreamErrorDomainKey=4}}, NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked}"} 2026-09-10T15:42:59.772Z | ERROR | USER_CERT:REFRESH_ERROR | Failed to get vpn authentication certificate from backend: Error Domain=ch.protonvpn.mac Code=111222333 "The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked" UserInfo={NSUnderlyingError=0x6000028aca50 {Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x6000028ac720 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<52>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask .<52>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=4}}, NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked} | 2026-09-10T15:42:59.772Z | INFO | USER_CERT | Cert refresh failed due to network error Error Domain=ch.protonvpn.mac Code=111222333 "The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked" UserInfo={NSUnderlyingError=0x6000028aca50 {Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x6000028ac720 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<52>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask .<52>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=4}}, NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked}. Retrying in 15 seconds. | 2026-09-10T15:42:59.772Z | WARN | TELEMETRY | Failed to send scheduled telemetry events, leaving in storage: ["MeasurementGroup": "vpn.any.connection", "EventInfo": [["Event": vpn_disconnection, "Dimensions": { isp = "China Unicom"; "network_type" = wifi; outcome = failure; port = 443; protocol = "wireguard_tls"; server = "JP#166"; "server_features" = "p2p,streaming,ipv6"; "user_country" = CN; "user_tier" = paid; "vpn_country" = JP; "vpn_status" = on; "vpn_trigger" = "new_connection"; }, "Values": { "session_length" = 88271; }, "MeasurementGroup": vpn.any.connection], ["Dimensions": { isp = "China Unicom"; "network_type" = wifi; outcome = success; port = 88; protocol = "wireguard_udp"; server = "JP#166"; "server_features" = "p2p,streaming,ipv6"; "user_country" = CN; "user_tier" = paid; "vpn_country" = JP; "vpn_status" = off; "vpn_trigger" = quick; }, "Values": { "time_to_connection" = 19908; }, "Event": vpn_connection, "MeasurementGroup": vpn.any.connection], ["MeasurementGroup": vpn.any.connection, "Event": vpn_disconnection, "Values": { "session_length" = 163400; }, "Dimensions": { isp = "China Unicom"; "network_type" = wifi; outcome = success; port = 88; protocol = "wireguard_udp"; server = "JP#166"; "server_features" = "p2p,streaming,ipv6"; "user_country" = CN; "user_tier" = paid; "vpn_country" = JP; "vpn_status" = on; "vpn_trigger" = "new_connection"; }]]] | 2026-09-10T15:42:59.773Z | DEBUG | TELEMETRY | Error(localizedDescription: "Didn\'t send Business event, feature disabled") | 2026-09-10T15:42:59.791Z | DEBUG | CONN | Server change observer received status | {"status":"connected","connection":"","requestId":"AE94FA5A-2915-4E5F-8B0F-611FE123092E"} 2026-09-10T15:42:59.791Z | INFO | CONN:CHANGE | VPN update state to VPN state - Connected to: 149.50.211.169 | {"state":"VPN state - Connected to: 149.50.211.169","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.udp))","oldState":"VPN state - Connecting to: 149.50.211.169"} 2026-09-10T15:42:59.796Z | DEBUG | USER_CERT | Loading stored vpn authentication data | 2026-09-10T15:42:59.796Z | INFO | USER_CERT:NEW_CERT | Stored vpn authentication certificate is expired (2026-09-10 15:30:31 +0000), the local agent will connect but certificate refresh will be needed | 2026-09-10T15:42:59.797Z | DEBUG | LOCAL_AGENT | Local agent connecting to node-sg-34.protonvpn.net with connectivity set to true | {"config":"LocalAgentConfiguration(hostname: \"node-sg-34.protonvpn.net\", features: Domain.VPNConnectionFeatures(netshield: Domain.NetShieldType.level2, vpnAccelerator: false, bouncing: Optional(\"19\"), natType: Domain.NATType.strictNAT, safeMode: nil, portForwarding: Optional(false)))"} 2026-09-10T15:42:59.797Z | DEBUG | LOCAL_AGENT | NetShield level: level2, should monitor stats: true | 2026-09-10T15:42:59.797Z | DEBUG | LOCAL_AGENT | Starting status request background timer | 2026-09-10T15:42:59.797Z | INFO | LOCAL_AGENT:LOG | LocalAgent: Connect | 2026-09-10T15:42:59.797Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to Connecting | 2026-09-10T15:42:59.797Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to connecting | 2026-09-10T15:42:59.797Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in connecting state | 2026-09-10T15:42:59.797Z | INFO | LOCAL_AGENT:LOG | LocalAgent: establishing tls connection... | 2026-09-10T15:42:59.798Z | DEBUG | CONN.CONNECT | Showing state as Loading connection info because local agent not connected yet | 2026-09-10T15:42:59.798Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:42:59.798Z | DEBUG | NET | Request started | {"url":"http:\/\/protonstatus.com\/vpn_status","method":"GET"} 2026-09-10T15:42:59.799Z | DEBUG | API | Disabling DoH while connected to VPN | 2026-09-10T15:42:59.805Z | DEBUG | CONN.CONNECT | Showing state as Loading connection info because local agent not connected yet | 2026-09-10T15:43:04.616Z | INFO | OS | applicationDidResignActive | 2026-09-10T15:43:04.800Z | INFO | LOCAL_AGENT:LOG | LocalAgent connection error: (*net.OpError) dial tcp 10.2.0.1:65432: i/o timeout | 2026-09-10T15:43:04.800Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to ServerUnreachable | 2026-09-10T15:43:04.800Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to serverUnreachable | 2026-09-10T15:43:04.800Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in serverUnreachable state | 2026-09-10T15:43:04.800Z | INFO | LOCAL_AGENT:LOG | Local agent retry in 0.26488242s | 2026-09-10T15:43:05.066Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to Connecting | 2026-09-10T15:43:05.066Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to connecting | 2026-09-10T15:43:05.066Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in connecting state | 2026-09-10T15:43:05.066Z | INFO | LOCAL_AGENT:LOG | LocalAgent: establishing tls connection... | 2026-09-10T15:43:06.970Z | INFO | OS | applicationDidBecomeActive | 2026-09-10T15:43:10.068Z | INFO | LOCAL_AGENT:LOG | LocalAgent connection error: (*net.OpError) dial tcp 10.2.0.1:65432: i/o timeout | 2026-09-10T15:43:10.068Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to ServerUnreachable | 2026-09-10T15:43:10.068Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to serverUnreachable | 2026-09-10T15:43:10.068Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in serverUnreachable state | 2026-09-10T15:43:10.068Z | INFO | LOCAL_AGENT:LOG | Local agent retry in 1.138214496s | 2026-09-10T15:43:11.208Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to Connecting | 2026-09-10T15:43:11.209Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to connecting | 2026-09-10T15:43:11.209Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in connecting state | 2026-09-10T15:43:11.209Z | INFO | LOCAL_AGENT:LOG | LocalAgent: establishing tls connection... | 2026-09-10T15:43:14.774Z | DEBUG | USER_CERT | Checking if vpn authentication certificate refresh is needed | 2026-09-10T15:43:14.780Z | INFO | USER_CERT | Using existing vpn authentication keys | 2026-09-10T15:43:14.786Z | INFO | USER_CERT | Certificate has expired or should be refreshed | {"validUntil":"2026-09-10 15:30:31 +0000","refreshTime":"2026-09-10 09:30:31 +0000"} 2026-09-10T15:43:14.786Z | DEBUG | USER_CERT:NEW_CERT | Asking backend API for new vpn authentication certificate | 2026-09-10T15:43:14.786Z | DEBUG | NET | Request started | {"url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate","method":"POST"} 2026-09-10T15:43:16.211Z | INFO | LOCAL_AGENT:LOG | LocalAgent connection error: (*net.OpError) dial tcp 10.2.0.1:65432: i/o timeout | 2026-09-10T15:43:16.211Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to ServerUnreachable | 2026-09-10T15:43:16.211Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to serverUnreachable | 2026-09-10T15:43:16.211Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in serverUnreachable state | 2026-09-10T15:43:16.211Z | INFO | LOCAL_AGENT:LOG | Local agent retry in 4.970576467s | 2026-09-10T15:43:16.397Z | INFO | OS | applicationDidResignActive | 2026-09-10T15:43:21.183Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to Connecting | 2026-09-10T15:43:21.183Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to connecting | 2026-09-10T15:43:21.183Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in connecting state | 2026-09-10T15:43:21.183Z | INFO | LOCAL_AGENT:LOG | LocalAgent: establishing tls connection... | 2026-09-10T15:43:24.625Z | INFO | OS | applicationDidBecomeActive | 2026-09-10T15:43:26.187Z | INFO | LOCAL_AGENT:LOG | LocalAgent connection error: (*net.OpError) dial tcp 10.2.0.1:65432: i/o timeout | 2026-09-10T15:43:26.187Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to ServerUnreachable | 2026-09-10T15:43:26.187Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to serverUnreachable | 2026-09-10T15:43:26.188Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in serverUnreachable state | 2026-09-10T15:43:26.188Z | INFO | LOCAL_AGENT:LOG | Local agent retry in 22.47208219s | 2026-09-10T15:43:27.634Z | DEBUG | PROTOCOL | XPC connection interrupted for mach service J6S6Q257EK.group.ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:43:27.895Z | INFO | OS | applicationDidResignActive | 2026-09-10T15:43:48.660Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to Connecting | 2026-09-10T15:43:48.660Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to connecting | 2026-09-10T15:43:48.660Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in connecting state | 2026-09-10T15:43:48.661Z | INFO | LOCAL_AGENT:LOG | LocalAgent: establishing tls connection... | 2026-09-10T15:43:50.605Z | INFO | OS | applicationDidBecomeActive | 2026-09-10T15:43:53.662Z | INFO | LOCAL_AGENT:LOG | LocalAgent connection error: (*net.OpError) dial tcp 10.2.0.1:65432: i/o timeout | 2026-09-10T15:43:53.662Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to ServerUnreachable | 2026-09-10T15:43:53.662Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to serverUnreachable | 2026-09-10T15:43:53.662Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in serverUnreachable state | 2026-09-10T15:43:53.663Z | INFO | LOCAL_AGENT:LOG | Local agent retry in 57.415548153s | 2026-09-10T15:43:53.901Z | INFO | UI | Showing alert: ReconnectOnSettingsChangeAlert | 2026-09-10T15:43:55.017Z | INFO | | Submitting request for ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:43:55.059Z | DEBUG | | Deinit request AEE6516E-66EE-425D-8DDC-FE163DBB2E97 for ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:43:55.059Z | DEBUG | SYSEX | Finished installation with results: [LegacyCommon.SystemExtensionType.wireGuard: Swift.Result.success(LegacyCommon.SystemExtensionInstallationSuccess.upgraded)] | 2026-09-10T15:43:55.177Z | INFO | CONN.CONNECT:TRIGGER | New protocol set to wireGuard(Domain.WireGuardTransport.tls). VPN will reconnect. | 2026-09-10T15:43:55.177Z | INFO | CONN.DISCONNECT | VPN disconnect started | 2026-09-10T15:43:55.179Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.udp)"} 2026-09-10T15:43:55.179Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:43:55.179Z | INFO | LOCAL_AGENT:LOG | LocalAgent: closing | 2026-09-10T15:43:55.179Z | INFO | LOCAL_AGENT:STATE_CHANGE | Local agent shared library state reported as changed to Disconnected | 2026-09-10T15:43:55.179Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Local agent state changed to disconnected | 2026-09-10T15:43:55.179Z | DEBUG | LOCAL_AGENT:STATE_CHANGE | Not checking features in disconnected state | 2026-09-10T15:43:55.261Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:43:55.618Z | INFO | SYSEX | XPC connection interrupted for mach service J6S6Q257EK.group.ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:43:55.802Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnected | {"oldState":"VPN state - Connected to: 149.50.211.169","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.udp))","state":"VPN state - Disconnected"} 2026-09-10T15:43:55.802Z | DEBUG | LOCAL_AGENT | Disconnecting Local agent | 2026-09-10T15:43:55.803Z | DEBUG | LOCAL_AGENT | Stopping status monitoring. WasMonitoring: true | 2026-09-10T15:43:55.809Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:43:55.810Z | DEBUG | API | Re-enabling DoH while disconnected from VPN | 2026-09-10T15:43:56.905Z | INFO | PERSISTENCE | Selecting server | {"order":"fastest","filters":"[|country=SG, |requires:[[]],excludes:[[\"secureCore\"]], |protocols:[WireGuardTLS], |maxTier=2, |notMaintenance]","connectionRequest":"ConnectionRequest(id: 88AC17BB-3468-4E79-A18B-C44500690ABC, serverType: Standard, connectionType: CommonNetworking.ConnectionRequestType.country(\"SG\", CommonNetworking.CountryConnectionRequestType.fastest), connectionProtocol: Stealth, netShieldType: Domain.NetShieldType.level2, natType: Domain.NATType.strictNAT, safeMode: nil, portForwarding: Optional(false), profileId: nil, profileName: nil, trigger: Optional(Domain.UserInitiatedVPNChange.VPNTrigger.map))"} 2026-09-10T15:43:56.912Z | DEBUG | CONN.CONNECT | Server selected: SG#238 (node-sg-34.protonvpn.net, load: 39) | 2026-09-10T15:43:56.916Z | INFO | CONN | Initiating connection timeout with id: 91427588-41E6-49EC-9A01-275FD3C55EF4 | 2026-09-10T15:43:56.916Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:43:56.917Z | INFO | CONN.CONNECT | Selected ServerIp(id: "eGclHlqQkEJMlj-Hksl9G6NAobUnqkmjKU6PhOZCWSFzozSIrwYU5YoRm6E6V69CN668Odvvr_IDe4Q7Hf7fpg==", entryIp: Optional("149.50.211.169"), exitIp: "149.50.211.169", domain: "node-sg-34.protonvpn.net", status: 1, label: Optional("19"), x25519PublicKey: Optional("TrhdyC23yM5oNjMN1YCDdqrgrQZpT0ZqFBU4yU8l3D4="), protocolEntries: nil) as server ip for node-sg-34.protonvpn.net | 2026-09-10T15:43:56.917Z | INFO | CONN.CONNECT | Connecting with wireGuard(Domain.WireGuardTransport.tls) to SG#238 via Optional("149.50.211.169"):[443] | 2026-09-10T15:43:57.013Z | INFO | USER_CERT | Using existing vpn authentication keys | 2026-09-10T15:43:57.016Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.udp)"} 2026-09-10T15:43:57.016Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:43:57.039Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: connecting, error: Error(localizedDescription: "Ignoring connecting event, wasn\'t connected before") | 2026-09-10T15:43:57.209Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:43:57.210Z | INFO | CONN.CONNECT | About to start connection process | 2026-09-10T15:43:57.211Z | INFO | CONN.CONNECT | Creating connection configuration | 2026-09-10T15:43:57.519Z | INFO | SYSEX | Credentials set result (wg): success | 2026-09-10T15:43:57.519Z | INFO | CONN.CONNECT | Configuring connection | 2026-09-10T15:43:57.529Z | INFO | CONN.CONNECT | Loading connection configuration | 2026-09-10T15:43:57.529Z | INFO | CONN.CONNECT | Starting VPN tunnel | 2026-09-10T15:43:57.538Z | DEBUG | CONN | Server change observer received status | {"requestId":"88AC17BB-3468-4E79-A18B-C44500690ABC","connection":"","status":"connecting"} 2026-09-10T15:43:57.538Z | INFO | CONN:CHANGE | VPN update state to VPN state - Connecting to: 149.50.211.169 | {"currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))","state":"VPN state - Connecting to: 149.50.211.169","oldState":"VPN state - Disconnected"} 2026-09-10T15:43:57.739Z | WARN | TELEMETRY | Failed to send telemetry event: ConnectionEvent(measurementGroup: "vpn.any.connection", event: Telemetry.ConnectionEvent.Event.vpnConnection(timeToConnection: 12.638815999031067), dimensions: Telemetry.ConnectionDimensions(outcome: Telemetry.ConnectionDimensions.Outcome.success, userTier: Telemetry.ConnectionDimensions.UserTier.paid, vpnStatus: Telemetry.CommonTelemetryDimensions.VPNStatus.off, vpnTrigger: Domain.UserInitiatedVPNChange.VPNTrigger.map, networkType: Telemetry.ConnectionDimensions.NetworkType.wifi, serverFeatures: ["p2p", "streaming", "ipv6"], vpnCountry: "SG", userCountry: "CN", protocol: Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.udp), server: "SG#238", port: "500", isp: "China Unicom", isServerFree: false)) with error: The internet connection appears to be offline., saving to storage. | 2026-09-10T15:43:57.740Z | DEBUG | | Telemetry event scheduled: { "Values" : { "time_to_connection" : 12638 }, "MeasurementGroup" : "vpn.any.connection", "Event" : "vpn_connection", "Dimensions" : { "protocol" : "wireguard_udp", "server_features" : "p2p,streaming,ipv6", "isp" : "China Unicom", "server" : "SG#238", "network_type" : "wifi", "user_tier" : "paid", "port" : "500", "vpn_country" : "SG", "vpn_status" : "off", "vpn_trigger" : "map", "user_country" : "CN", "outcome" : "success" } } | 2026-09-10T15:43:57.740Z | DEBUG | TELEMETRY | Error(localizedDescription: "Didn\'t send Business event, feature disabled") | 2026-09-10T15:44:14.941Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:44:25.740Z | DEBUG | APP | Refresh timer tick | {"task":"(Function)"} 2026-09-10T15:44:26.341Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:44:26.944Z | INFO | CONN | Connection timeout finished for id: 91427588-41E6-49EC-9A01-275FD3C55EF4 | 2026-09-10T15:44:26.944Z | INFO | CONN.CONNECT | Connection attempt timed out | 2026-09-10T15:44:26.944Z | INFO | CONN.CONNECT | Stop preparing connection | 2026-09-10T15:44:26.944Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:44:26.948Z | INFO | CONN.DISCONNECT | VPN disconnect started | 2026-09-10T15:44:26.949Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.tls)"} 2026-09-10T15:44:26.949Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:44:27.080Z | DEBUG | | Telemetry event scheduled: { "Values" : { "session_length" : 87171 }, "MeasurementGroup" : "vpn.any.connection", "Event" : "vpn_disconnection", "Dimensions" : { "outcome" : "failure", "protocol" : "wireguard_udp", "vpn_country" : "SG", "user_tier" : "paid", "network_type" : "wifi", "vpn_status" : "on", "user_country" : "CN", "server" : "SG#238", "port" : "500", "isp" : "China Unicom", "vpn_trigger" : "new_connection", "server_features" : "p2p,streaming,ipv6" } } | 2026-09-10T15:44:27.154Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:44:27.167Z | DEBUG | CONN | Server change observer received status | {"status":"disconnecting","connection":"","requestId":"88AC17BB-3468-4E79-A18B-C44500690ABC"} 2026-09-10T15:44:27.692Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnecting from: 149.50.211.169 | {"oldState":"VPN state - Connecting to: 149.50.211.169","state":"VPN state - Disconnecting from: 149.50.211.169","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))"} 2026-09-10T15:44:27.693Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:44:27.806Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: disconnecting, error: Error(localizedDescription: "Ignoring the `disconnecting` status") | 2026-09-10T15:44:30.808Z | ERROR | NET:RESPONSE | Request failed | {"error":"Error Domain=NSURLErrorDomain Code=-1001 \"The request timed out.\" UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x60000289cd50 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 \"(null)\" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <3FF0458C-5E95-4161-8599-289BD240F94F>.<100>, _NSURLErrorRelatedURLSessionTaskErrorKey=(\n \"LocalDataTask <3FF0458C-5E95-4161-8599-289BD240F94F>.<100>\"\n), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=http:\/\/protonstatus.com\/vpn_status, NSErrorFailingURLKey=http:\/\/protonstatus.com\/vpn_status, _kCFStreamErrorDomainKey=4}","method":"GET","url":"http:\/\/protonstatus.com\/vpn_status"} 2026-09-10T15:44:30.808Z | ERROR | UI | Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x60000289cd50 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <3FF0458C-5E95-4161-8599-289BD240F94F>.<100>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <3FF0458C-5E95-4161-8599-289BD240F94F>.<100>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=http://protonstatus.com/vpn_status, NSErrorFailingURLKey=http://protonstatus.com/vpn_status, _kCFStreamErrorDomainKey=4} | 2026-09-10T15:44:35.838Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:44:35.838Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:44:35.838Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:44:35.854Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:44:35.858Z | ERROR | NET:RESPONSE | Request failed | {"error":"Error Domain=ch.protonvpn.mac Code=111222333 \"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked\" UserInfo={NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked, NSUnderlyingError=0x6000028eb5a0 {Error Domain=NSURLErrorDomain Code=-1001 \"The request timed out.\" UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x6000028eb570 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 \"(null)\" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <0B0B7EF2-6FB5-48C4-84D5-0A6687CB4CEC>.<55>, _NSURLErrorRelatedURLSessionTaskErrorKey=(\n \"LocalDataTask <0B0B7EF2-6FB5-48C4-84D5-0A6687CB4CEC>.<55>\"\n), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, NSErrorFailingURLKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, _kCFStreamErrorDomainKey=4}}}","method":"POST","url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate"} 2026-09-10T15:44:35.858Z | ERROR | USER_CERT:REFRESH_ERROR | Failed to get vpn authentication certificate from backend: Error Domain=ch.protonvpn.mac Code=111222333 "The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked" UserInfo={NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked, NSUnderlyingError=0x6000028eb5a0 {Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x6000028eb570 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <0B0B7EF2-6FB5-48C4-84D5-0A6687CB4CEC>.<55>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <0B0B7EF2-6FB5-48C4-84D5-0A6687CB4CEC>.<55>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=4}}} | 2026-09-10T15:44:35.858Z | INFO | USER_CERT | Cert refresh failed due to network error Error Domain=ch.protonvpn.mac Code=111222333 "The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked" UserInfo={NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked, NSUnderlyingError=0x6000028eb5a0 {Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x6000028eb570 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <0B0B7EF2-6FB5-48C4-84D5-0A6687CB4CEC>.<55>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <0B0B7EF2-6FB5-48C4-84D5-0A6687CB4CEC>.<55>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=4}}}. Retrying in 11 seconds. | 2026-09-10T15:44:46.357Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:44:46.357Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:44:46.357Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:44:46.372Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:44:46.375Z | WARN | TELEMETRY | Failed to send telemetry event: ConnectionEvent(measurementGroup: "vpn.any.connection", event: Telemetry.ConnectionEvent.Event.vpnConnection(timeToConnection: 68.66508400440216), dimensions: Telemetry.ConnectionDimensions(outcome: Telemetry.ConnectionDimensions.Outcome.success, userTier: Telemetry.ConnectionDimensions.UserTier.paid, vpnStatus: Telemetry.CommonTelemetryDimensions.VPNStatus.off, vpnTrigger: Domain.UserInitiatedVPNChange.VPNTrigger.auto, networkType: Telemetry.ConnectionDimensions.NetworkType.wifi, serverFeatures: ["p2p", "streaming", "ipv6"], vpnCountry: "SG", userCountry: "CN", protocol: Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.udp), server: "SG#238", port: "500", isp: "China Unicom", isServerFree: false)) with error: The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked, saving to storage. | 2026-09-10T15:44:46.376Z | DEBUG | | Telemetry event scheduled: { "MeasurementGroup" : "vpn.any.connection", "Values" : { "time_to_connection" : 68665 }, "Event" : "vpn_connection", "Dimensions" : { "server" : "SG#238", "outcome" : "success", "vpn_trigger" : "auto", "user_country" : "CN", "server_features" : "p2p,streaming,ipv6", "user_tier" : "paid", "vpn_country" : "SG", "protocol" : "wireguard_udp", "vpn_status" : "off", "port" : "500", "isp" : "China Unicom", "network_type" : "wifi" } } | 2026-09-10T15:44:46.376Z | DEBUG | TELEMETRY | Error(localizedDescription: "Didn\'t send Business event, feature disabled") | 2026-09-10T15:44:46.863Z | DEBUG | USER_CERT | Checking if vpn authentication certificate refresh is needed | 2026-09-10T15:44:46.868Z | INFO | USER_CERT | Using existing vpn authentication keys | 2026-09-10T15:44:46.871Z | INFO | USER_CERT | Certificate has expired or should be refreshed | {"validUntil":"2026-09-10 15:30:31 +0000","refreshTime":"2026-09-10 09:30:31 +0000"} 2026-09-10T15:44:46.871Z | DEBUG | USER_CERT:NEW_CERT | Asking backend API for new vpn authentication certificate | 2026-09-10T15:44:46.871Z | DEBUG | NET | Request started | {"method":"POST","url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate"} 2026-09-10T15:44:47.178Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnected | {"state":"VPN state - Disconnected","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))","oldState":"VPN state - Disconnecting from: 149.50.211.169"} 2026-09-10T15:44:47.179Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:44:47.191Z | DEBUG | CONN | Server change observer received status | {"requestId":"88AC17BB-3468-4E79-A18B-C44500690ABC","connection":"","status":"disconnected"} 2026-09-10T15:44:47.290Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: disconnected, error: Error(localizedDescription: "Ignoring disconnected event, was previously disconnected") | 2026-09-10T15:44:51.385Z | INFO | OS | applicationDidResignActive | 2026-09-10T15:44:55.983Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:44:55.984Z | INFO | OS | applicationDidBecomeActive | 2026-09-10T15:44:55.987Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:44:57.594Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:44:57.599Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:44:59.502Z | INFO | PERSISTENCE | Selecting server | {"connectionRequest":"ConnectionRequest(id: 61745839-4EBE-45BF-8630-64294FE32208, serverType: Standard, connectionType: CommonNetworking.ConnectionRequestType.country(\"VN\", CommonNetworking.CountryConnectionRequestType.fastest), connectionProtocol: Smart, netShieldType: Domain.NetShieldType.off, natType: Domain.NATType.strictNAT, safeMode: nil, portForwarding: nil, profileId: nil, profileName: nil, trigger: nil)","order":"fastest","filters":"[|country=VN, |requires:[[]],excludes:[[\"secureCore\"]], |protocols:[WireGuardTLS], |maxTier=2, |notMaintenance]"} 2026-09-10T15:44:59.504Z | DEBUG | CONN.CONNECT | Server selected: VN#3 (node-vn-01.protonvpn.net, load: 35) | 2026-09-10T15:44:59.513Z | INFO | CONN | Initiating connection timeout with id: 89D3B35D-AABA-409E-BAEA-E5A5EE91FA27 | 2026-09-10T15:44:59.513Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:44:59.514Z | INFO | CONN.CONNECT | Selected ServerIp(id: "xCF5_OX-sDZjSqPb8l9vRSURgZfN7dgCYEYKc1_SZxYuZ2PtoR024y81ogDtdzx9VjWHfoph3iyKTg3aPyyDIw==", entryIp: Optional("188.214.152.226"), exitIp: "188.214.152.226", domain: "node-vn-01.protonvpn.net", status: 1, label: Optional("2"), x25519PublicKey: Optional("NfKOMtk2fuDycbQXv36yk5mfdgDA8/8SN6amCdFrKxQ="), protocolEntries: nil) as server ip for node-vn-01.protonvpn.net | 2026-09-10T15:44:59.514Z | INFO | CONN.CONNECT | Connecting with wireGuard(Domain.WireGuardTransport.tls) to VN#3 via Optional("188.214.152.226"):[443] | 2026-09-10T15:44:59.601Z | INFO | USER_CERT | Using existing vpn authentication keys | 2026-09-10T15:44:59.603Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.tls)"} 2026-09-10T15:44:59.603Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:44:59.626Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: connecting, error: Error(localizedDescription: "Ignoring connecting event, wasn\'t connected before") | 2026-09-10T15:44:59.772Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:44:59.773Z | INFO | CONN.CONNECT | About to start connection process | 2026-09-10T15:44:59.773Z | INFO | CONN.CONNECT | Creating connection configuration | 2026-09-10T15:44:59.982Z | DEBUG | PROTOCOL | XPC connection interrupted for mach service J6S6Q257EK.group.ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:45:00.003Z | INFO | SYSEX | Credentials set result (wg): success | 2026-09-10T15:45:00.003Z | INFO | CONN.CONNECT | Configuring connection | 2026-09-10T15:45:00.014Z | INFO | CONN.CONNECT | Loading connection configuration | 2026-09-10T15:45:00.014Z | INFO | CONN.CONNECT | Starting VPN tunnel | 2026-09-10T15:45:00.021Z | DEBUG | CONN | Server change observer received status | {"connection":"","status":"connecting","requestId":"7920E163-28F4-42EE-82EC-49B0ADC68514"} 2026-09-10T15:45:00.021Z | INFO | CONN:CHANGE | VPN update state to VPN state - Connecting to: 188.214.152.226 | {"state":"VPN state - Connecting to: 188.214.152.226","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))","oldState":"VPN state - Disconnected"} 2026-09-10T15:45:00.133Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:45:00.133Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:45:00.133Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:45:00.140Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:45:00.185Z | ERROR | NET:RESPONSE | Request failed | {"method":"POST","url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate","error":"Error Domain=NSURLErrorDomain Code=-1009 \"The internet connection appears to be offline.\" UserInfo={_kCFStreamErrorCodeKey=50, NSUnderlyingError=0x600002876400 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 \"(null)\" UserInfo={_kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=50, _NSURLErrorVPNInactiveFailureKey=true, _NSURLErrorNWPathKey=satisfiable (Network Agent [domain: NetworkExtension, type: VPN, description: VPN: ProtonVPN, uuid: B50159A5-A949-4EBF-B5DC-4BA4C6BB5386, flags: d] VPN is inactive), interface: en0[802.11], ipv4, dns, uses cell}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<61>, _NSURLErrorRelatedURLSessionTaskErrorKey=(\n \"LocalDataTask .<61>\"\n), NSLocalizedDescription=The internet connection appears to be offline., NSErrorFailingURLStringKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, NSErrorFailingURLKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, _kCFStreamErrorDomainKey=1}"} 2026-09-10T15:45:00.185Z | ERROR | USER_CERT:REFRESH_ERROR | Failed to get vpn authentication certificate from backend: Error Domain=NSURLErrorDomain Code=-1009 "The internet connection appears to be offline." UserInfo={_kCFStreamErrorCodeKey=50, NSUnderlyingError=0x600002876400 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=50, _NSURLErrorVPNInactiveFailureKey=true, _NSURLErrorNWPathKey=satisfiable (Network Agent [domain: NetworkExtension, type: VPN, description: VPN: ProtonVPN, uuid: B50159A5-A949-4EBF-B5DC-4BA4C6BB5386, flags: d] VPN is inactive), interface: en0[802.11], ipv4, dns, uses cell}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<61>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask .<61>" ), NSLocalizedDescription=The internet connection appears to be offline., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=1} | 2026-09-10T15:45:00.185Z | ERROR | API:RESPONSE | clientCredentials error | {"error":"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked"} 2026-09-10T15:45:00.185Z | ERROR | APP | RefreshAccount error | {"error":"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked"} 2026-09-10T15:45:00.185Z | ERROR | USER_CERT | Failed to refresh certificate through API: Error Domain=NSURLErrorDomain Code=-1009 "The internet connection appears to be offline." UserInfo={_kCFStreamErrorCodeKey=50, NSUnderlyingError=0x600002876400 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=50, _NSURLErrorVPNInactiveFailureKey=true, _NSURLErrorNWPathKey=satisfiable (Network Agent [domain: NetworkExtension, type: VPN, description: VPN: ProtonVPN, uuid: B50159A5-A949-4EBF-B5DC-4BA4C6BB5386, flags: d] VPN is inactive), interface: en0[802.11], ipv4, dns, uses cell}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<61>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask .<61>" ), NSLocalizedDescription=The internet connection appears to be offline., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=1}. Will retry in 80.0 seconds. | 2026-09-10T15:45:00.185Z | INFO | USER_CERT | Certificate refresh timer invalidated | 2026-09-10T15:45:00.185Z | INFO | USER_CERT | Timer setup for 2026-09-10 15:46:20 +0000 | 2026-09-10T15:45:06.659Z | INFO | UI | Showing alert: ReconnectOnSmartProtocolChangeAlert | 2026-09-10T15:45:07.746Z | INFO | | Submitting request for ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:45:07.782Z | DEBUG | | Deinit request 24BA2436-D17D-441F-8AA9-B12F189602B1 for ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:45:07.782Z | DEBUG | SYSEX | Finished installation with results: [LegacyCommon.SystemExtensionType.wireGuard: Swift.Result.success(LegacyCommon.SystemExtensionInstallationSuccess.upgraded)] | 2026-09-10T15:45:07.787Z | INFO | CONN.CONNECT:TRIGGER | Connection will restart after VPN feature change | {"feature":"smartProtocol"} 2026-09-10T15:45:07.787Z | INFO | CONN.DISCONNECT | VPN disconnect started | 2026-09-10T15:45:07.787Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.tls)"} 2026-09-10T15:45:07.787Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:45:07.806Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:45:07.821Z | DEBUG | CONN | Server change observer received status | {"connection":"","requestId":"7920E163-28F4-42EE-82EC-49B0ADC68514","status":"disconnecting"} 2026-09-10T15:45:08.351Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnecting from: 188.214.152.226 | {"state":"VPN state - Disconnecting from: 188.214.152.226","oldState":"VPN state - Connecting to: 188.214.152.226","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))"} 2026-09-10T15:45:08.351Z | INFO | CONN.CONNECT | Stop preparing connection | 2026-09-10T15:45:08.355Z | INFO | CONN.DISCONNECT | VPN disconnect started | 2026-09-10T15:45:08.355Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.tls)"} 2026-09-10T15:45:08.355Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:45:08.559Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:45:16.565Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:45:16.566Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:45:16.566Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:45:16.582Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:45:16.584Z | ERROR | API:RESPONSE | Couldn't parse user's ip location response | {"error":"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked"} 2026-09-10T15:45:16.585Z | DEBUG | NET | Request started | {"url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/logicals?WithState=1&WithTranslations&WithEntriesForProtocols=IKEv2,WireGuardUDP,WireGuardTCP,WireGuardTLS","condition":"Optional(CommonNetworking.RequestCondition.ifModifiedSince(date: \"Mon, 07 Sep 2026 16:44:14 GMT\"))","method":"GET"} 2026-09-10T15:45:17.623Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:45:17.623Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:45:17.623Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:45:17.624Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:45:17.624Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:45:17.624Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:45:17.640Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:45:17.652Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:45:17.660Z | WARN | TELEMETRY | Failed to send scheduled telemetry events, leaving in storage: ["MeasurementGroup": "vpn.any.connection", "EventInfo": [["MeasurementGroup": vpn.any.connection, "Dimensions": { isp = "China Unicom"; "network_type" = wifi; outcome = success; port = 500; protocol = "wireguard_udp"; server = "SG#238"; "server_features" = "p2p,streaming,ipv6"; "user_country" = CN; "user_tier" = paid; "vpn_country" = SG; "vpn_status" = off; "vpn_trigger" = map; }, "Event": vpn_connection, "Values": { "time_to_connection" = 12638; }], ["MeasurementGroup": vpn.any.connection, "Values": { "session_length" = 87171; }, "Event": vpn_disconnection, "Dimensions": { isp = "China Unicom"; "network_type" = wifi; outcome = failure; port = 500; protocol = "wireguard_udp"; server = "SG#238"; "server_features" = "p2p,streaming,ipv6"; "user_country" = CN; "user_tier" = paid; "vpn_country" = SG; "vpn_status" = on; "vpn_trigger" = "new_connection"; }]]] | 2026-09-10T15:45:17.661Z | DEBUG | TELEMETRY | Error(localizedDescription: "Didn\'t send Business event, feature disabled") | 2026-09-10T15:45:27.834Z | DEBUG | CONN | Server change observer received status | {"connection":"","status":"disconnected","requestId":"7920E163-28F4-42EE-82EC-49B0ADC68514"} 2026-09-10T15:45:27.834Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnected | {"state":"VPN state - Disconnected","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))","oldState":"VPN state - Disconnecting from: 188.214.152.226"} 2026-09-10T15:45:27.834Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:45:27.937Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: disconnected, error: Error(localizedDescription: "Ignoring disconnected event, was previously disconnected") | 2026-09-10T15:45:36.304Z | INFO | OS | applicationDidResignActive | 2026-09-10T15:45:36.804Z | INFO | OS | applicationDidBecomeActive | 2026-09-10T15:45:37.913Z | DEBUG | CONN.CONNECT:TRIGGER | Connect requested by selecting Quick connect | 2026-09-10T15:45:37.913Z | INFO | CONN.CONNECT | Using default QC request, user has no QC profile set | 2026-09-10T15:45:37.917Z | INFO | PERSISTENCE | Selecting server | {"connectionRequest":"ConnectionRequest(id: 7C500BEA-2AD5-4F21-95E2-FBB2E39A19F7, serverType: Standard, connectionType: CommonNetworking.ConnectionRequestType.fastest, connectionProtocol: Smart, netShieldType: Domain.NetShieldType.level2, natType: Domain.NATType.strictNAT, safeMode: nil, portForwarding: Optional(false), profileId: nil, profileName: nil, trigger: Optional(Domain.UserInitiatedVPNChange.VPNTrigger.quick))","filters":"[|requires:[[]],excludes:[[\"secureCore\"]], |protocols:[WireGuardUDP, WireGuardTCP, WireGuardTLS], |maxTier=2, |notMaintenance]","order":"fastestGatewaysLast"} 2026-09-10T15:45:37.995Z | DEBUG | CONN.CONNECT | Server selected: CN#36 (node-cn-01.protonvpn.net, load: 6) | 2026-09-10T15:45:38.001Z | INFO | CONN | Initiating connection timeout with id: 05B76C93-3F5D-451E-8CFB-AE378F2F4683 | 2026-09-10T15:45:38.001Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:45:38.002Z | INFO | CONN.CONNECT | Selected ServerIp(id: "H0upgAN4duNJqcoCx91H2VpdbtBLCuYf693bQfKS3TFtilDtTZKI3CqMoAasqYCJNRHY1avV6f0PBRXLICkxPA==", entryIp: Optional("135.136.62.2"), exitIp: "135.136.62.2", domain: "node-cn-01.protonvpn.net", status: 1, label: Optional("35"), x25519PublicKey: Optional("rE6K4G80By8v88VXjn+6+7YCpxzR+RG/9/II5Q7iRgE="), protocolEntries: nil) as server ip for node-cn-01.protonvpn.net | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Wireguard will be used for Smart Protocol checks | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Wireguard TCP will be used for Smart Protocol checks | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Wireguard TLS will be used for Smart Protocol checks | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Determining best protocol for ServerIp(id: "H0upgAN4duNJqcoCx91H2VpdbtBLCuYf693bQfKS3TFtilDtTZKI3CqMoAasqYCJNRHY1avV6f0PBRXLICkxPA==", entryIp: Optional("135.136.62.2"), exitIp: "135.136.62.2", domain: "node-cn-01.protonvpn.net", status: 1, label: Optional("35"), x25519PublicKey: Optional("rE6K4G80By8v88VXjn+6+7YCpxzR+RG/9/II5Q7iRgE="), protocolEntries: nil) | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Checking Stealth availability for ServerIp(id: "H0upgAN4duNJqcoCx91H2VpdbtBLCuYf693bQfKS3TFtilDtTZKI3CqMoAasqYCJNRHY1avV6f0PBRXLICkxPA==", entryIp: Optional("135.136.62.2"), exitIp: "135.136.62.2", domain: "node-cn-01.protonvpn.net", status: 1, label: Optional("35"), x25519PublicKey: Optional("rE6K4G80By8v88VXjn+6+7YCpxzR+RG/9/II5Q7iRgE="), protocolEntries: nil) | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard (TCP) availability for ServerIp(id: "H0upgAN4duNJqcoCx91H2VpdbtBLCuYf693bQfKS3TFtilDtTZKI3CqMoAasqYCJNRHY1avV6f0PBRXLICkxPA==", entryIp: Optional("135.136.62.2"), exitIp: "135.136.62.2", domain: "node-cn-01.protonvpn.net", status: 1, label: Optional("35"), x25519PublicKey: Optional("rE6K4G80By8v88VXjn+6+7YCpxzR+RG/9/II5Q7iRgE="), protocolEntries: nil) | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for ServerIp(id: "H0upgAN4duNJqcoCx91H2VpdbtBLCuYf693bQfKS3TFtilDtTZKI3CqMoAasqYCJNRHY1avV6f0PBRXLICkxPA==", entryIp: Optional("135.136.62.2"), exitIp: "135.136.62.2", domain: "node-cn-01.protonvpn.net", status: 1, label: Optional("35"), x25519PublicKey: Optional("rE6K4G80By8v88VXjn+6+7YCpxzR+RG/9/II5Q7iRgE="), protocolEntries: nil) | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 1224 | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 4500 | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 443 | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 51820 | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 500 | 2026-09-10T15:45:38.002Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 88 | 2026-09-10T15:45:38.087Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: connecting, error: Error(localizedDescription: "Ignoring connecting event, wasn\'t connected before") | 2026-09-10T15:45:38.422Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:45:43.005Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 500 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:59522->135.136.62.2:500: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:59522->135.136.62.2:500: i/o timeout}) | 2026-09-10T15:45:43.004Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 443 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:58363->135.136.62.2:443: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:58363->135.136.62.2:443: i/o timeout}) | 2026-09-10T15:45:43.004Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 88 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:55678->135.136.62.2:88: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:55678->135.136.62.2:88: i/o timeout}) | 2026-09-10T15:45:43.005Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 1224 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:54162->135.136.62.2:1224: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:54162->135.136.62.2:1224: i/o timeout}) | 2026-09-10T15:45:43.005Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 4500 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:63728->135.136.62.2:4500: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:63728->135.136.62.2:4500: i/o timeout}) | 2026-09-10T15:45:43.005Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 51820 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:57834->135.136.62.2:51820: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:57834->135.136.62.2:51820: i/o timeout}) | 2026-09-10T15:45:44.069Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for ServerIp(id: "H0upgAN4duNJqcoCx91H2VpdbtBLCuYf693bQfKS3TFtilDtTZKI3CqMoAasqYCJNRHY1avV6f0PBRXLICkxPA==", entryIp: Optional("135.136.62.2"), exitIp: "135.136.62.2", domain: "node-cn-01.protonvpn.net", status: 1, label: Optional("35"), x25519PublicKey: Optional("rE6K4G80By8v88VXjn+6+7YCpxzR+RG/9/II5Q7iRgE="), protocolEntries: nil) | 2026-09-10T15:45:44.070Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 51820 | 2026-09-10T15:45:44.070Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 443 | 2026-09-10T15:45:44.070Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 500 | 2026-09-10T15:45:44.070Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 4500 | 2026-09-10T15:45:44.070Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 88 | 2026-09-10T15:45:44.070Z | DEBUG | CONN.CONNECT:SCAN | Checking WireGuard availability for 135.136.62.2 on port 1224 | 2026-09-10T15:45:47.005Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:45:47.697Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:45:49.072Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 500 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:50393->135.136.62.2:500: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:50393->135.136.62.2:500: i/o timeout}) | 2026-09-10T15:45:49.072Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 443 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:52621->135.136.62.2:443: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:52621->135.136.62.2:443: i/o timeout}) | 2026-09-10T15:45:49.072Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 1224 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:60799->135.136.62.2:1224: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:60799->135.136.62.2:1224: i/o timeout}) | 2026-09-10T15:45:49.072Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 88 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:63345->135.136.62.2:88: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:63345->135.136.62.2:88: i/o timeout}) | 2026-09-10T15:45:49.072Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 4500 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:53790->135.136.62.2:4500: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:53790->135.136.62.2:4500: i/o timeout}) | 2026-09-10T15:45:49.072Z | ERROR | CONN.CONNECT:SCAN | WireGuard NOT available for 135.136.62.2 on port 51820 (Error: Error Domain=go Code=1 "read udp 192.168.71.72:55242->135.136.62.2:51820: i/o timeout" UserInfo={NSLocalizedDescription=read udp 192.168.71.72:55242->135.136.62.2:51820: i/o timeout}) | 2026-09-10T15:45:49.073Z | DEBUG | CONN.CONNECT:SCAN | Best protocol for 135.136.62.2 is wireGuard(Domain.WireGuardTransport.tls) with ports [443] | 2026-09-10T15:45:49.073Z | INFO | CONN.CONNECT | Connecting with wireGuard(Domain.WireGuardTransport.tls) to CN#36 via Optional("135.136.62.2"):[443] | 2026-09-10T15:45:49.077Z | INFO | USER_CERT | Using existing vpn authentication keys | 2026-09-10T15:45:49.084Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.tls)"} 2026-09-10T15:45:49.084Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:45:49.191Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:45:49.194Z | INFO | CONN.CONNECT | About to start connection process | 2026-09-10T15:45:49.194Z | INFO | CONN.CONNECT | Creating connection configuration | 2026-09-10T15:45:49.401Z | INFO | SYSEX | Credentials set result (wg): success | 2026-09-10T15:45:49.401Z | INFO | CONN.CONNECT | Configuring connection | 2026-09-10T15:45:49.409Z | INFO | CONN.CONNECT | Loading connection configuration | 2026-09-10T15:45:49.410Z | INFO | CONN.CONNECT | Starting VPN tunnel | 2026-09-10T15:45:49.417Z | DEBUG | CONN | Server change observer received status | {"requestId":"7C500BEA-2AD5-4F21-95E2-FBB2E39A19F7","status":"connecting","connection":""} 2026-09-10T15:45:49.417Z | INFO | CONN:CHANGE | VPN update state to VPN state - Connecting to: 135.136.62.2 | {"currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))","oldState":"VPN state - Disconnected","state":"VPN state - Connecting to: 135.136.62.2"} 2026-09-10T15:45:49.560Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:45:49.560Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:45:49.560Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:45:49.567Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:46:07.406Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:46:07.406Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:46:07.406Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:46:07.423Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:46:07.427Z | ERROR | NET:RESPONSE | Request failed | {"code":"-1","error":"Error Domain=ch.protonvpn.mac Code=111222333 \"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked\" UserInfo={NSUnderlyingError=0x600002850990 {Error Domain=NSURLErrorDomain Code=-1001 \"The request timed out.\" UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600002852fd0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 \"(null)\" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <275389D6-FB96-42C8-AA07-98E369727C1C>.<63>, _NSURLErrorRelatedURLSessionTaskErrorKey=(\n \"LocalDataTask <275389D6-FB96-42C8-AA07-98E369727C1C>.<63>\"\n), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/logicals?WithState=1&WithTranslations&WithEntriesForProtocols=IKEv2,WireGuardUDP,WireGuardTCP,WireGuardTLS, NSErrorFailingURLKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/logicals?WithState=1&WithTranslations&WithEntriesForProtocols=IKEv2,WireGuardUDP,WireGuardTCP,WireGuardTLS, _kCFStreamErrorDomainKey=4}}, NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked}","url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/logicals?WithState=1&WithTranslations&WithEntriesForProtocols=IKEv2,WireGuardUDP,WireGuardTCP,WireGuardTLS","method":"GET"} 2026-09-10T15:46:07.427Z | ERROR | API | Failed to refresh server information | {"error":"CommonVpnErrorDomain 0x4650454c"} 2026-09-10T15:46:07.984Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:46:07.984Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:46:07.984Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:46:08.000Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:46:08.004Z | ERROR | API:RESPONSE | clientCredentials error | {"error":"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked"} 2026-09-10T15:46:08.083Z | INFO | CONN | Connection timeout finished for id: 05B76C93-3F5D-451E-8CFB-AE378F2F4683 | 2026-09-10T15:46:08.083Z | INFO | CONN.CONNECT | Connection attempt timed out | 2026-09-10T15:46:08.083Z | INFO | CONN.CONNECT | Stop preparing connection | 2026-09-10T15:46:08.083Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:46:08.086Z | INFO | CONN.DISCONNECT | VPN disconnect started | 2026-09-10T15:46:08.087Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.tls)"} 2026-09-10T15:46:08.087Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:46:08.216Z | DEBUG | | Telemetry event scheduled: { "Dimensions" : { "user_tier" : "paid", "vpn_country" : "CN", "vpn_trigger" : "quick", "network_type" : "wifi", "user_country" : "CN", "server" : "CN#36", "port" : "443", "protocol" : "wireguard_tls", "isp" : "China Unicom", "outcome" : "failure", "server_features" : "p2p,streaming,ipv6", "vpn_status" : "off" }, "Values" : { "time_to_connection" : 30128 }, "Event" : "vpn_connection", "MeasurementGroup" : "vpn.any.connection" } | 2026-09-10T15:46:08.288Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:46:08.300Z | DEBUG | CONN | Server change observer received status | {"status":"disconnecting","requestId":"7C500BEA-2AD5-4F21-95E2-FBB2E39A19F7","connection":""} 2026-09-10T15:46:08.825Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnecting from: 135.136.62.2 | {"state":"VPN state - Disconnecting from: 135.136.62.2","oldState":"VPN state - Connecting to: 135.136.62.2","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))"} 2026-09-10T15:46:08.825Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:46:08.935Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: disconnecting, error: Error(localizedDescription: "Ignoring the `disconnecting` status") | 2026-09-10T15:46:11.160Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:46:11.161Z | INFO | CONN.DISCONNECT | VPN disconnect started | 2026-09-10T15:46:11.162Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.tls)"} 2026-09-10T15:46:11.162Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:46:11.353Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:46:20.188Z | DEBUG | USER_CERT | Checking if vpn authentication certificate refresh is needed | 2026-09-10T15:46:20.189Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:46:20.191Z | INFO | USER_CERT | Using existing vpn authentication keys | 2026-09-10T15:46:20.193Z | INFO | USER_CERT | Certificate has expired or should be refreshed | {"refreshTime":"2026-09-10 09:30:31 +0000","validUntil":"2026-09-10 15:30:31 +0000"} 2026-09-10T15:46:20.193Z | DEBUG | USER_CERT:NEW_CERT | Asking backend API for new vpn authentication certificate | 2026-09-10T15:46:20.194Z | DEBUG | NET | Request started | {"url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate","method":"POST"} 2026-09-10T15:46:28.319Z | DEBUG | CONN | Server change observer received status | {"status":"disconnected","connection":"","requestId":"7C500BEA-2AD5-4F21-95E2-FBB2E39A19F7"} 2026-09-10T15:46:28.319Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnected | {"oldState":"VPN state - Disconnecting from: 135.136.62.2","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))","state":"VPN state - Disconnected"} 2026-09-10T15:46:33.034Z | INFO | | Submitting request for ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:46:33.070Z | DEBUG | | Deinit request E5FC31DF-4874-451E-845C-C63AE4788AFD for ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:46:33.070Z | DEBUG | SYSEX | Finished installation with results: [LegacyCommon.SystemExtensionType.wireGuard: Swift.Result.success(LegacyCommon.SystemExtensionInstallationSuccess.upgraded)] | 2026-09-10T15:46:34.417Z | DEBUG | CONN.CONNECT:TRIGGER | Connect requested by selecting Quick connect | 2026-09-10T15:46:34.418Z | INFO | CONN.CONNECT | Using default QC request, user has no QC profile set | 2026-09-10T15:46:34.421Z | INFO | PERSISTENCE | Selecting server | {"connectionRequest":"ConnectionRequest(id: 3F65454A-3673-4FDD-A5B9-5BA2E77ABC84, serverType: Standard, connectionType: CommonNetworking.ConnectionRequestType.fastest, connectionProtocol: Stealth, netShieldType: Domain.NetShieldType.level2, natType: Domain.NATType.strictNAT, safeMode: nil, portForwarding: Optional(false), profileId: nil, profileName: nil, trigger: Optional(Domain.UserInitiatedVPNChange.VPNTrigger.quick))","filters":"[|requires:[[]],excludes:[[\"secureCore\"]], |protocols:[WireGuardTLS], |maxTier=2, |notMaintenance]","order":"fastestGatewaysLast"} 2026-09-10T15:46:34.506Z | DEBUG | CONN.CONNECT | Server selected: CN#36 (node-cn-01.protonvpn.net, load: 6) | 2026-09-10T15:46:34.512Z | INFO | CONN | Initiating connection timeout with id: 80610B56-EAAE-4E2A-B50F-6F17E83B668F | 2026-09-10T15:46:34.512Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:46:34.513Z | INFO | CONN.CONNECT | Selected ServerIp(id: "H0upgAN4duNJqcoCx91H2VpdbtBLCuYf693bQfKS3TFtilDtTZKI3CqMoAasqYCJNRHY1avV6f0PBRXLICkxPA==", entryIp: Optional("135.136.62.2"), exitIp: "135.136.62.2", domain: "node-cn-01.protonvpn.net", status: 1, label: Optional("35"), x25519PublicKey: Optional("rE6K4G80By8v88VXjn+6+7YCpxzR+RG/9/II5Q7iRgE="), protocolEntries: nil) as server ip for node-cn-01.protonvpn.net | 2026-09-10T15:46:34.513Z | INFO | CONN.CONNECT | Connecting with wireGuard(Domain.WireGuardTransport.tls) to CN#36 via Optional("135.136.62.2"):[443] | 2026-09-10T15:46:34.584Z | INFO | USER_CERT | Using existing vpn authentication keys | 2026-09-10T15:46:34.588Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.tls)"} 2026-09-10T15:46:34.588Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:46:34.608Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: connecting, error: Error(localizedDescription: "Ignoring connecting event, wasn\'t connected before") | 2026-09-10T15:46:34.754Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:46:34.773Z | INFO | CONN.CONNECT | About to start connection process | 2026-09-10T15:46:34.773Z | INFO | CONN.CONNECT | Creating connection configuration | 2026-09-10T15:46:34.967Z | DEBUG | PROTOCOL | XPC connection interrupted for mach service J6S6Q257EK.group.ch.protonvpn.mac.WireGuard-Extension | 2026-09-10T15:46:34.987Z | INFO | SYSEX | Credentials set result (wg): success | 2026-09-10T15:46:34.987Z | INFO | CONN.CONNECT | Configuring connection | 2026-09-10T15:46:34.997Z | INFO | CONN.CONNECT | Loading connection configuration | 2026-09-10T15:46:34.997Z | INFO | CONN.CONNECT | Starting VPN tunnel | 2026-09-10T15:46:35.003Z | DEBUG | CONN | Server change observer received status | {"requestId":"3F65454A-3673-4FDD-A5B9-5BA2E77ABC84","connection":"","status":"connecting"} 2026-09-10T15:46:35.003Z | INFO | CONN:CHANGE | VPN update state to VPN state - Connecting to: 135.136.62.2 | {"state":"VPN state - Connecting to: 135.136.62.2","oldState":"VPN state - Disconnected","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))"} 2026-09-10T15:46:35.131Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:46:35.131Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:46:35.131Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:46:35.138Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:46:35.152Z | ERROR | API:RESPONSE | clientCredentials error | {"error":"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked"} 2026-09-10T15:46:38.108Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:46:38.705Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:46:41.705Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:46:45.928Z | INFO | OS | applicationDidResignActive | 2026-09-10T15:46:46.498Z | INFO | OS | applicationDidBecomeActive | 2026-09-10T15:46:50.714Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:46:58.471Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:46:58.471Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:46:58.471Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:46:58.486Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:46:59.108Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:46:59.109Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:46:59.109Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:46:59.118Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:46:59.124Z | WARN | TELEMETRY | Failed to send scheduled telemetry events, leaving in storage: ["MeasurementGroup": "vpn.any.connection", "EventInfo": [["Event": vpn_connection, "Values": { "time_to_connection" = 68665; }, "Dimensions": { isp = "China Unicom"; "network_type" = wifi; outcome = success; port = 500; protocol = "wireguard_udp"; server = "SG#238"; "server_features" = "p2p,streaming,ipv6"; "user_country" = CN; "user_tier" = paid; "vpn_country" = SG; "vpn_status" = off; "vpn_trigger" = auto; }, "MeasurementGroup": vpn.any.connection], ["Values": { "time_to_connection" = 30128; }, "MeasurementGroup": vpn.any.connection, "Event": vpn_connection, "Dimensions": { isp = "China Unicom"; "network_type" = wifi; outcome = failure; port = 443; protocol = "wireguard_tls"; server = "CN#36"; "server_features" = "p2p,streaming,ipv6"; "user_country" = CN; "user_tier" = paid; "vpn_country" = CN; "vpn_status" = off; "vpn_trigger" = quick; }]]] | 2026-09-10T15:46:59.125Z | DEBUG | TELEMETRY | Error(localizedDescription: "Didn\'t send Business event, feature disabled") | 2026-09-10T15:47:02.105Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:47:02.105Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:47:02.105Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:47:02.120Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:47:02.124Z | WARN | TELEMETRY | Failed to send telemetry event: ConnectionEvent(measurementGroup: "vpn.any.connection", event: Telemetry.ConnectionEvent.Event.vpnConnection(timeToConnection: 33.19445502758026), dimensions: Telemetry.ConnectionDimensions(outcome: Telemetry.ConnectionDimensions.Outcome.aborted, userTier: Telemetry.ConnectionDimensions.UserTier.paid, vpnStatus: Telemetry.CommonTelemetryDimensions.VPNStatus.off, vpnTrigger: Domain.UserInitiatedVPNChange.VPNTrigger.auto, networkType: Telemetry.ConnectionDimensions.NetworkType.wifi, serverFeatures: ["p2p", "streaming", "ipv6"], vpnCountry: "CN", userCountry: "CN", protocol: Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls), server: "CN#36", port: "443", isp: "China Unicom", isServerFree: false)) with error: The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked, saving to storage. | 2026-09-10T15:47:02.125Z | DEBUG | | Telemetry event scheduled: { "Values" : { "time_to_connection" : 33194 }, "Event" : "vpn_connection", "Dimensions" : { "outcome" : "aborted", "vpn_trigger" : "auto", "network_type" : "wifi", "vpn_country" : "CN", "protocol" : "wireguard_tls", "port" : "443", "isp" : "China Unicom", "user_country" : "CN", "server" : "CN#36", "vpn_status" : "off", "server_features" : "p2p,streaming,ipv6", "user_tier" : "paid" }, "MeasurementGroup" : "vpn.any.connection" } | 2026-09-10T15:47:02.126Z | DEBUG | TELEMETRY | Error(localizedDescription: "Didn\'t send Business event, feature disabled") | 2026-09-10T15:47:04.621Z | INFO | CONN | Connection timeout finished for id: 80610B56-EAAE-4E2A-B50F-6F17E83B668F | 2026-09-10T15:47:04.621Z | INFO | CONN.CONNECT | Connection attempt timed out | 2026-09-10T15:47:04.621Z | INFO | CONN.CONNECT | Stop preparing connection | 2026-09-10T15:47:04.621Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:47:04.624Z | INFO | CONN.DISCONNECT | VPN disconnect started | 2026-09-10T15:47:04.625Z | DEBUG | CONN | Proceeding with disconnection request immediately | {"currentVpnProtocol":"wireGuard(Domain.WireGuardTransport.tls)"} 2026-09-10T15:47:04.625Z | INFO | CONN.DISCONNECT | Closing VPN tunnel | 2026-09-10T15:47:04.751Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: disconnected, error: Error(localizedDescription: "Ignoring disconnected event, was previously disconnected") | 2026-09-10T15:47:04.823Z | INFO | CONN.CONNECT | On Demand set: Off for WireguardProtocolManager(_create: (Function), _vpnProviderManager: (Function), _vpnProviderManagerAsync: (Function), _logs: (Function)) | 2026-09-10T15:47:04.835Z | DEBUG | CONN | Server change observer received status | {"status":"disconnecting","connection":"","requestId":"3F65454A-3673-4FDD-A5B9-5BA2E77ABC84"} 2026-09-10T15:47:05.358Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnecting from: 135.136.62.2 | {"state":"VPN state - Disconnecting from: 135.136.62.2","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))","oldState":"VPN state - Connecting to: 135.136.62.2"} 2026-09-10T15:47:05.358Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:47:05.463Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: disconnecting, error: Error(localizedDescription: "Ignoring the `disconnecting` status") | 2026-09-10T15:47:11.720Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:47:11.720Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:47:11.721Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:47:11.739Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:47:11.744Z | ERROR | NET:RESPONSE | Request failed | {"url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate","method":"POST","error":"Error Domain=ch.protonvpn.mac Code=111222333 \"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked\" UserInfo={NSUnderlyingError=0x600002ab6430 {Error Domain=NSURLErrorDomain Code=-1001 \"The request timed out.\" UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600002ab6a90 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 \"(null)\" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <7AD233F4-F17A-49B4-B1A9-8AA2582C7845>.<69>, _NSURLErrorRelatedURLSessionTaskErrorKey=(\n \"LocalDataTask <7AD233F4-F17A-49B4-B1A9-8AA2582C7845>.<69>\"\n), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, NSErrorFailingURLKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, _kCFStreamErrorDomainKey=4}}, NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked}"} 2026-09-10T15:47:11.744Z | ERROR | USER_CERT:REFRESH_ERROR | Failed to get vpn authentication certificate from backend: Error Domain=ch.protonvpn.mac Code=111222333 "The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked" UserInfo={NSUnderlyingError=0x600002ab6430 {Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600002ab6a90 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <7AD233F4-F17A-49B4-B1A9-8AA2582C7845>.<69>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <7AD233F4-F17A-49B4-B1A9-8AA2582C7845>.<69>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=4}}, NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked} | 2026-09-10T15:47:11.744Z | INFO | USER_CERT | Cert refresh failed due to network error Error Domain=ch.protonvpn.mac Code=111222333 "The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked" UserInfo={NSUnderlyingError=0x600002ab6430 {Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600002ab6a90 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <7AD233F4-F17A-49B4-B1A9-8AA2582C7845>.<69>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <7AD233F4-F17A-49B4-B1A9-8AA2582C7845>.<69>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=4}}, NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked}. Retrying in 15 seconds. | 2026-09-10T15:47:24.853Z | INFO | CONN:CHANGE | VPN update state to VPN state - Disconnected | {"oldState":"VPN state - Disconnecting from: 135.136.62.2","currentProtocol":"Optional(Domain.VpnProtocol.wireGuard(Domain.WireGuardTransport.tls))","state":"VPN state - Disconnected"} 2026-09-10T15:47:24.854Z | INFO | CONN | NAT port mapping service stopped | 2026-09-10T15:47:24.866Z | DEBUG | CONN | Server change observer received status | {"requestId":"3F65454A-3673-4FDD-A5B9-5BA2E77ABC84","status":"disconnected","connection":""} 2026-09-10T15:47:24.964Z | DEBUG | TELEMETRY | No telemetry event triggered for connection change: disconnected, error: Error(localizedDescription: "Ignoring disconnected event, was previously disconnected") | 2026-09-10T15:47:25.929Z | DEBUG | APP | Refresh timer tick | {"task":"(Function)"} 2026-09-10T15:47:26.749Z | DEBUG | USER_CERT | Checking if vpn authentication certificate refresh is needed | 2026-09-10T15:47:26.755Z | INFO | USER_CERT | Using existing vpn authentication keys | 2026-09-10T15:47:26.757Z | INFO | USER_CERT | Certificate has expired or should be refreshed | {"validUntil":"2026-09-10 15:30:31 +0000","refreshTime":"2026-09-10 09:30:31 +0000"} 2026-09-10T15:47:26.757Z | DEBUG | USER_CERT:NEW_CERT | Asking backend API for new vpn authentication certificate | 2026-09-10T15:47:26.758Z | DEBUG | NET | Request started | {"method":"POST","url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate"} 2026-09-10T15:47:28.746Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:47:34.678Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:47:49.746Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:47:49.746Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:47:49.746Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:47:49.760Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:47:49.762Z | ERROR | API:RESPONSE | clientCredentials error | {"error":"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked"} 2026-09-10T15:47:55.683Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:47:55.683Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:47:55.684Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:47:55.703Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:47:56.934Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:47:56.940Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:48:10.289Z | INFO | OS | applicationDidResignActive | 2026-09-10T15:48:17.779Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:48:17.780Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:48:17.780Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:48:17.780Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:48:17.780Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:48:17.780Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:48:17.803Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:48:17.820Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:48:17.824Z | ERROR | API:RESPONSE | clientCredentials error | {"error":"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked"} 2026-09-10T15:48:17.824Z | ERROR | APP | RefreshAccount error | {"error":"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked"} 2026-09-10T15:48:17.828Z | ERROR | NET:RESPONSE | Request failed | {"method":"POST","error":"Error Domain=ch.protonvpn.mac Code=111222333 \"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked\" UserInfo={NSUnderlyingError=0x600002b6f1e0 {Error Domain=NSURLErrorDomain Code=-1001 \"The request timed out.\" UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600002b6fa80 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 \"(null)\" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<73>, _NSURLErrorRelatedURLSessionTaskErrorKey=(\n \"LocalDataTask .<73>\"\n), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, NSErrorFailingURLKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, _kCFStreamErrorDomainKey=4}}, NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked}","url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate"} 2026-09-10T15:48:17.828Z | ERROR | USER_CERT:REFRESH_ERROR | Failed to get vpn authentication certificate from backend: Error Domain=ch.protonvpn.mac Code=111222333 "The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked" UserInfo={NSUnderlyingError=0x600002b6f1e0 {Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600002b6fa80 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<73>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask .<73>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=4}}, NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked} | 2026-09-10T15:48:17.828Z | INFO | USER_CERT | Cert refresh failed due to network error Error Domain=ch.protonvpn.mac Code=111222333 "The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked" UserInfo={NSUnderlyingError=0x600002b6f1e0 {Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600002b6fa80 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask .<73>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask .<73>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=4}}, NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked}. Retrying in 10 seconds. | 2026-09-10T15:48:25.747Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:48:27.834Z | DEBUG | USER_CERT | Checking if vpn authentication certificate refresh is needed | 2026-09-10T15:48:27.836Z | INFO | USER_CERT | Using existing vpn authentication keys | 2026-09-10T15:48:27.839Z | INFO | USER_CERT | Certificate has expired or should be refreshed | {"validUntil":"2026-09-10 15:30:31 +0000","refreshTime":"2026-09-10 09:30:31 +0000"} 2026-09-10T15:48:27.839Z | DEBUG | USER_CERT:NEW_CERT | Asking backend API for new vpn authentication certificate | 2026-09-10T15:48:27.840Z | DEBUG | NET | Request started | {"url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate","method":"POST"} 2026-09-10T15:48:46.242Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:48:46.243Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:48:46.243Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:48:46.270Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:48:46.274Z | ERROR | API:RESPONSE | clientCredentials error | {"error":"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked"} 2026-09-10T15:48:58.748Z | DEBUG | CORE | [DoH] Resolving proxy domain — fetching | 2026-09-10T15:49:19.746Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Cloudflare DoH | 2026-09-10T15:49:19.747Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Quad9 DoH | 2026-09-10T15:49:19.747Z | DEBUG | CORE | [DoH] Resolving proxy domain — hit from Google DoH | 2026-09-10T15:49:19.770Z | DEBUG | CORE | [DoH] Resolving proxy domain — failed | 2026-09-10T15:49:19.776Z | ERROR | NET:RESPONSE | Request failed | {"url":"https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate","error":"Error Domain=ch.protonvpn.mac Code=111222333 \"The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked\" UserInfo={NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked, NSUnderlyingError=0x600002b6d110 {Error Domain=NSURLErrorDomain Code=-1001 \"The request timed out.\" UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600002b6fa80 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 \"(null)\" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <0EE75845-13FF-496D-A12E-1E77A55A492C>.<75>, _NSURLErrorRelatedURLSessionTaskErrorKey=(\n \"LocalDataTask <0EE75845-13FF-496D-A12E-1E77A55A492C>.<75>\"\n), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, NSErrorFailingURLKey=https:\/\/vpn-api.proton.me\/vpn\/v1\/certificate, _kCFStreamErrorDomainKey=4}}}","method":"POST"} 2026-09-10T15:49:19.776Z | ERROR | USER_CERT:REFRESH_ERROR | Failed to get vpn authentication certificate from backend: Error Domain=ch.protonvpn.mac Code=111222333 "The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked" UserInfo={NSLocalizedDescription=The Proton servers are unreachable. It might be caused by wrong network configuration, Proton servers not working or Proton servers being blocked, NSUnderlyingError=0x600002b6d110 {Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={_kCFStreamErrorCodeKey=-2102, NSUnderlyingError=0x600002b6fa80 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalDataTask <0EE75845-13FF-496D-A12E-1E77A55A492C>.<75>, _NSURLErrorRelatedURLSessionTaskErrorKey=( "LocalDataTask <0EE75845-13FF-496D-A12E-1E77A55A492C>.<75>" ), NSLocalizedDescription=The request timed out., NSErrorFailingURLStringKey=https://vpn-api.proton.me/vpn/v1/certificate, NSErrorFailingURLKey=https://vpn-api.proton.me/vpn/v1/certificate, _kCFStreamErrorDomainKey=4}}} |