Check response status for the five untested providers #32

Open
opened 2026-08-17 16:57:02 -04:00 by mysticalsoap · 1 comment
Owner

raise_for_status was added to ProtonVPN only. The other five still read
whatever comes back as if it were the expected payload, so an API that starts
rejecting requests produces a KeyError rather than a reported failure -- and
an error document can be written out as a certificate.

Deferred because some flows may legitimately expect a non-2xx mid-sequence
(Windscribe's login, update.py:552-609) and there is no account here to test
against. Do it alongside the provider-structure work, with captured fixtures.

`raise_for_status` was added to ProtonVPN only. The other five still read whatever comes back as if it were the expected payload, so an API that starts rejecting requests produces a `KeyError` rather than a reported failure -- and an error document can be written out as a certificate. Deferred because some flows may legitimately expect a non-2xx mid-sequence (Windscribe's login, `update.py:552-609`) and there is no account here to test against. Do it alongside the provider-structure work, with captured fixtures.
Author
Owner

Probed the live endpoints 2026-08-24. Scope note first: PIA and AzireVPN are dropped per #134, so this issue covers Mullvad, Windscribe and Airvpn (Proton's 401 is #33's).

  • Mullvad — import is dead end-to-end. /en/servers/ no longer contains the scraped table (table-container: 0 matches — the page is a JS app now), so server_parse[0] raises before the WireGuard section runs, and the whole import lands as a failed import. OpenVPN is gone server-side anyway (removed 2026-01-15), so the fix is dropping the scrape, not repairing it. The WG endpoints still answer: public/relays/wireguard/v1/ is 200 unauthenticated, and the legacy /wg/ key upload answers 400-not-404 to garbage input — still parsing requests, but Mullvad's own apps moved to the devices API, so the upload needs a real-account test before trusting it.
  • Windscribe — cert bundle 404s. assets.windscribe.com/desktop/other/openvpn_cert.zip is gone, so windscribe_get_servers dies in zipfile (BadZipFile → failed import) right after a successful login. The server list itself is fine: serverlist/openvpn/1/<uuid> returns 200 unauthenticated, ~229KB JSON, current shape matches what the parser expects.
  • Airvpn — not probed; the whole exchange sits behind account credentials. No evidence either way yet.
Probed the live endpoints 2026-08-24. Scope note first: PIA and AzireVPN are dropped per #134, so this issue covers Mullvad, Windscribe and Airvpn (Proton's 401 is #33's). - **Mullvad — import is dead end-to-end.** `/en/servers/` no longer contains the scraped table (`table-container`: 0 matches — the page is a JS app now), so `server_parse[0]` raises before the WireGuard section runs, and the whole import lands as a failed import. OpenVPN is gone server-side anyway (removed 2026-01-15), so the fix is dropping the scrape, not repairing it. The WG endpoints still answer: `public/relays/wireguard/v1/` is 200 unauthenticated, and the legacy `/wg/` key upload answers 400-not-404 to garbage input — still parsing requests, but Mullvad's own apps moved to the devices API, so the upload needs a real-account test before trusting it. - **Windscribe — cert bundle 404s.** `assets.windscribe.com/desktop/other/openvpn_cert.zip` is gone, so `windscribe_get_servers` dies in `zipfile` (BadZipFile → failed import) right after a successful login. The server list itself is fine: `serverlist/openvpn/1/<uuid>` returns 200 unauthenticated, ~229KB JSON, current shape matches what the parser expects. - **Airvpn — not probed**; the whole exchange sits behind account credentials. No evidence either way yet.
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
mysticalsoap/aqomui#32
No description provided.