Skip to content

Exporter: SSL Error #206

Closed
Closed

Description

@MrBwoken

How are you running it?

The window, from a downloaded release

Version, or commit

1.5.0

Operating system

Linux

Which route?

Signing in to iCloud

What happened

I tried signing in after the bug fix and everything works until you enter the right code via SMS or IDevice.
ClientConnectorCertificateError: Cannot connect to host setup.icloud.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1032)')]

The log

└─Deluxo ► cat /tmp/OpenTagViewer/exporter.log 
2026-09-14 18:34:12,519 INFO     exporter.version: OpenTagViewer exporter 1.5.0
2026-09-14 18:34:12,519 WARNING  exporter.privacy: ========================================================================================
2026-09-14 18:34:12,519 WARNING  exporter.privacy:   This log is for debugging and is NOT safe to publish as-is.
2026-09-14 18:34:12,519 WARNING  exporter.privacy: 
2026-09-14 18:34:12,520 WARNING  exporter.privacy:   It names your devices by name, model and serial, records keychain item attributes
2026-09-14 18:34:12,520 WARNING  exporter.privacy:   as Apple stores them, and identifies every device in your account's trust circle.
2026-09-14 18:34:12,520 WARNING  exporter.privacy:   No key, password or passcode is written here, and payloads appear only as byte
2026-09-14 18:34:12,520 WARNING  exporter.privacy:   counts - but nothing can promise a given identifier never appears, because the text
2026-09-14 18:34:12,520 WARNING  exporter.privacy:   comes from a library reading Apple's own structures.
2026-09-14 18:34:12,520 WARNING  exporter.privacy: 
2026-09-14 18:34:12,520 WARNING  exporter.privacy:   READ THIS FILE AND REMOVE ANYTHING THAT IDENTIFIES YOU BEFORE SENDING IT ANYWHERE.
2026-09-14 18:34:12,520 WARNING  exporter.privacy: ========================================================================================
2026-09-14 18:34:12,520 INFO     __main__: Starting OpenTagViewer AirTag Exporter 1.5.0
2026-09-14 18:34:38,651 INFO     findmy.reports.account: Attempting authentication for user eggs@jamal.com
2026-09-14 18:34:38,669 INFO     findmy.reports.anisette: The Anisette engine will download libraries required for operation, this may take a few seconds...
2026-09-14 18:34:38,669 INFO     findmy.reports.anisette: To speed up future local Anisette initializations, provide a filesystem path to load the libraries from.
2026-09-14 18:34:39,775 INFO     anisette.anisette: Provisioning...
2026-09-14 18:34:42,715 INFO     findmy.reports.account: Detected 2FA requirement: trustedDeviceSecondaryAuth
2026-09-14 18:34:42,715 INFO     findmy.reports.account: Transitioning login state: LoginState.LOGGED_OUT -> LoginState.REQUIRE_2FA
2026-09-14 18:34:56,451 INFO     findmy.reports.account: Attempting authentication for user eggs@jamal.com
2026-09-14 18:34:57,038 INFO     findmy.reports.account: GSA authentication successful
2026-09-14 18:34:57,038 INFO     findmy.reports.account: Transitioning login state: LoginState.REQUIRE_2FA -> LoginState.AUTHENTICATED
2026-09-14 18:34:57,038 INFO     findmy.reports.account: Logging into com.apple.mobileme
2026-09-14 18:34:57,236 ERROR    __main__: Reading accessories failed
Traceback (most recent call last):
  File "wizard.py", line 350, in _load
  File "exporter/asyncui.py", line 180, in run_with_progress
  File "exporter/asyncui.py", line 138, in _work
  File "asyncio/runners.py", line 196, in run
  File "asyncio/runners.py", line 119, in run
  File "asyncio/base_events.py", line 726, in run_until_complete
  File "wizard.py", line 484, in _read_icloud
  File "exporter/icloud.py", line 448, in log_in
  File "exporter/icloud.py", line 533, in _submit_code_with_retries
  File "findmy/reports/twofactor.py", line 223, in submit
  File "findmy/reports/account.py", line 1004, in td_2fa_submit
  File "findmy/reports/account.py", line 1529, in _login_mobileme
  File "findmy/util/http.py", line 230, in post
  File "findmy/util/http.py", line 212, in request
  File "findmy/util/http.py", line 190, in request
  File "aiohttp/client.py", line 858, in _request
  File "aiohttp/client.py", line 812, in _connect_and_send_request
  File "aiohttp/connector.py", line 657, in connect
  File "aiohttp/connector.py", line 1242, in _create_connection
  File "aiohttp/connector.py", line 1620, in _create_direct_connection
  File "aiohttp/connector.py", line 1589, in _create_direct_connection
  File "aiohttp/connector.py", line 1318, in _wrap_create_connection
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host setup.icloud.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1032)')]
2026-09-14 18:35:26,516 INFO     findmy.reports.account: Attempting authentication for user eggs@jamal.com
2026-09-14 18:35:26,533 INFO     findmy.reports.anisette: The Anisette engine will download libraries required for operation, this may take a few seconds...
2026-09-14 18:35:26,533 INFO     findmy.reports.anisette: To speed up future local Anisette initializations, provide a filesystem path to load the libraries from.
2026-09-14 18:35:27,529 INFO     anisette.anisette: Provisioning...
2026-09-14 18:35:30,033 INFO     findmy.reports.account: Detected 2FA requirement: trustedDeviceSecondaryAuth
2026-09-14 18:35:30,033 INFO     findmy.reports.account: Transitioning login state: LoginState.LOGGED_OUT -> LoginState.REQUIRE_2FA
2026-09-14 18:37:11,429 INFO     findmy.reports.account: Attempting authentication for user eggs@jamal.com
2026-09-14 18:37:12,036 INFO     findmy.reports.account: GSA authentication successful
2026-09-14 18:37:12,036 INFO     findmy.reports.account: Transitioning login state: LoginState.REQUIRE_2FA -> LoginState.AUTHENTICATED
2026-09-14 18:37:12,036 INFO     findmy.reports.account: Logging into com.apple.mobileme
2026-09-14 18:37:12,212 ERROR    __main__: Reading accessories failed
Traceback (most recent call last):
  File "wizard.py", line 350, in _load
  File "exporter/asyncui.py", line 180, in run_with_progress
  File "exporter/asyncui.py", line 138, in _work
  File "asyncio/runners.py", line 196, in run
  File "asyncio/runners.py", line 119, in run
  File "asyncio/base_events.py", line 726, in run_until_complete
  File "wizard.py", line 484, in _read_icloud
  File "exporter/icloud.py", line 448, in log_in
  File "exporter/icloud.py", line 533, in _submit_code_with_retries
  File "findmy/reports/twofactor.py", line 173, in submit
  File "findmy/reports/account.py", line 966, in sms_2fa_submit
  File "findmy/reports/account.py", line 1529, in _login_mobileme
  File "findmy/util/http.py", line 230, in post
  File "findmy/util/http.py", line 212, in request
  File "findmy/util/http.py", line 190, in request
  File "aiohttp/client.py", line 858, in _request
  File "aiohttp/client.py", line 812, in _connect_and_send_request
  File "aiohttp/connector.py", line 657, in connect
  File "aiohttp/connector.py", line 1242, in _create_connection
  File "aiohttp/connector.py", line 1620, in _create_direct_connection
  File "aiohttp/connector.py", line 1589, in _create_direct_connection
  File "aiohttp/connector.py", line 1318, in _wrap_create_connection
aiohttp.client_exceptions.ClientConnectorCertificateError: Cannot connect to host setup.icloud.com:443 ssl:True [SSLCertVerificationError: (1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1032)')]

Before you post

  • I have read the log and taken out anything personal I did not want public.

Activity

  1. added
    bugSomething isn't working
    @exporter-toolIssues regarding the desktop export tool (wizard and CLI)
    on Sep 14, 2026
  2. MrBwoken commented on Sep 14, 2026

    @MrBwoken
    Author

    Ran with dolphin file manager, i3 window manager, picom enabled, no vpn, with vpn same results, never had this issue with like altstore or any sideloading program so idk

  3. MrBwoken commented on Sep 14, 2026

    @MrBwoken
    Author

    found fix:
    export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt

  4. MrBwoken commented on Sep 14, 2026

    @MrBwoken
    Author

    ohh app is still broken 😭

  5. parawanderer commented on Sep 14, 2026

    @parawanderer
    Owner

    @MrBwoken do you get a new error once you set that SSL environment variable, or still the same one?

  6. self-assigned this
    on Sep 14, 2026
  7. MrBwoken commented on Sep 14, 2026

    @MrBwoken
    Author

    @MrBwoken do you get a new error once you set that SSL environment variable, or still the same one?

    Once it's set it's fixed and no errors. Also when will app be fixed? GSA error still in app.

  8. parawanderer commented on Sep 14, 2026

    @parawanderer
    Owner

    @MrBwoken So I am trying to verify that the app works right now on 1.1.0 and got locked out of my apple account on the 2FA stage with 429 "Too Many Requests", which I am trying to wait out right now for 24hrs and then retrying.

    If somebody else could verify whether the debug build works properly I could speed up releasing that.

    If you (or anybody else) is up for it, you can pull the debug build from https://github.com/parawanderer/OpenTagViewer/actions/runs/34777896516 and test it out early.

    It would be especially helpful if you could verify if you see any issues at any point and if the export/import history button and the new map provider works. The app was subject to the same Anisette header 503 issue so that question is also still open with it.

    Note that it gets installed as a new app with its own (inverted) icon, it can be uninstalled separately and history between this debug version of the app does not carry over automatically (only a release build would inherit old history).

    Image

    (I think your certificate issue here is a separate issue that I'll try to debug on my Linux box when I have the time)

  9. MrBwoken commented on Sep 14, 2026

    @MrBwoken
    Author

    @MrBwoken So I am trying to verify that the app works right now on 1.1.0 and got locked out of my apple account on the 2FA stage with 429 "Too Many Requests", which I am trying to wait out right now for 24hrs and then retrying.

    If somebody else could verify whether the debug build works properly I could speed up releasing that.

    If you (or anybody else) is up for it, you can pull the debug build from https://github.com/parawanderer/OpenTagViewer/actions/runs/34777896516 and test it out early.

    It would be especially helpful if you could verify if you see any issues at any point and if the export/import history button and the new map provider works. The app was subject to the same Anisette header 503 issue so that question is also still open with it.

    Note that it gets installed as a new app with its own (inverted) icon, it can be uninstalled separately and history between this debug version of the app does not carry over automatically (only a release build would inherit old history).

    (I think your certificate issue here is a separate issue that I'll try to debug on my Linux box when I have the time)

    OpenTagViewer app 1.1.0-debug (029a872) | tags imported from: nothing - no bundle imported
    This device's log follows, unfiltered by the app: 1 lines, which is everything the device still had (asked for 5000).

    --------- beginning of (HKS)4E95011D17F0F5A2AFC551C5ADDD6660850727228B34601D845055FBB2AAA9FA5B11C23A85E81DB6A45B6E3CB982B22C00E1BA3267755E7FD22C26BCCE6749E51A00E06AFDA521609E1D0474B3CE121D7C63453013E2639D4480A0A4E7C65F59C15A0EEE708726453B68036FBE39A6610AC1025F432474AEDE12BD53BB10A281C5B10ACAF7D40C1EDA6F37B592FB70CADD17F87051EFAECCB6754AE6EC4BADDB9905B8490B1FC65245A16AF27769C86A09C8FEDBBC7F2871857E2D9C6191E02626EE54D2BBFE13A662D1B5EAE7437E2CFB8897D62FB3FEA2974B2194D12A311D96AC5E55871387C75D2AD6C32876CA43667E54287BE587C7EF2301A22D8AB687(HKE)

    OpenTagViewer app 1.1.0-debug (029a872) | tags imported from: nothing - no bundle imported

    App errors, definitly not ratelimit. I think

    Image
  10. MrBwoken commented on Sep 14, 2026

    @MrBwoken
    Author
    Image

    by spam clicking login i can get it to work consistently. but when entering code it dosent work. (SMS)

  11. MrBwoken commented on Sep 14, 2026

    @MrBwoken
    Author
    Image

    When logging in with code (idevice not sms)

  12. parawanderer commented on Sep 14, 2026

    @parawanderer
    Owner

    Interesting, thanks for checking this! That looks like the same issue I got. Then there's now a deeper bug on the app side that causes this 429, which doesn't exist on the desktop exporter or CLI.

    I think this will require sitting down with the app and debugging the logic of the login flow in it. Maybe it sends too many requests or something.

    But yeah, that's a whole project/task at this point then. Might take a while to see what it's doing wrong. It otherwise is meant to be using the same login flow as the standalone exporters.

    If anybody is up for it and wants to properly sit down in Android Studio and debug the login flow in the app, but I figure that's a pretty hard and annoying ask. I will try to fix it this week so that this 1.1.0 can be released myself otherwise.

  13. MrBwoken commented on Sep 14, 2026

    @MrBwoken
    Author
    Image

    got in with autoclicker importing with account dosent work I'll try zip and autoclicker

  14. MrBwoken commented on Sep 14, 2026

    @MrBwoken
    Author
    Image

    works after app crashed

  15. parawanderer commented on Sep 14, 2026

    @parawanderer
    Owner

    Two separate problems in this thread:

    The Linux SSL error is fixed in #209. The frozen build had no CA bundle, so sign-in worked (Apple's root is pinned) but setup.icloud.com right after the code did not. It now uses certifi automatically, so SSL_CERT_FILE is no longer needed.

    The app 429 is a different thing and is not the app flooding Apple. The login button already ignores taps while one attempt is in flight, and the auth requests go through the same code as the working CLI. Spam-clicking helps because each attempt is one request and Apple is throttling them intermittently, so eventually one gets through. The most likely difference from the CLI is the Anisette identity the app uses locally, but there is currently no way to switch that from the login screen while local Anisette is working, so testing it needs an app change. Still being looked into.

    Interactively co-authored by Claude Code and @parawanderer

  16. parawanderer commented on Sep 14, 2026

    @parawanderer
    Owner

    Hi, @MrBwoken
    So this build: https://github.com/parawanderer/OpenTagViewer/actions/runs/34891034007 should have the same UI with a remote anisette server fallback on the "<-" page when the login fails on 429. Not a full fix yet for the native Anisette problem but that should enable the full app functionality again beyond a hands-off Anisette server. Still looking into why the native Anisette is a problem for now.

  17. MrBwoken commented on Sep 14, 2026

    @MrBwoken
    Author

    Hi, @MrBwoken So this build: https://github.com/parawanderer/OpenTagViewer/actions/runs/34891034007 should have the same UI with a remote anisette server fallback on the "<-" page when the login fails on 429. Not a full fix yet for the native Anisette problem but that should enable the full app functionality again beyond a hands-off Anisette server. Still looking into why the native Anisette is a problem for now.

    Thank you, i will try it out :D

  18. parawanderer commented on Sep 15, 2026

    @parawanderer
    Owner

    @MrBwoken the 429 has most likely been found and fixed — by @LiamJ74, who diagnosed it in the FindMy.py fork this app uses.

    Apple's sign-in edge refuses the second request on a connection it has already answered. Signing in makes two, back to back, over one connection — so the second always got a 429 while the first succeeded. That is why spam-clicking sometimes got you in: a retry occasionally landed on a fresh connection. It also explains why nothing about the account, the network or the Anisette server made any difference.

    A debug build with the fix is here, if you want to try it: https://github.com/parawanderer/OpenTagViewer/actions/runs/35021773249 — the APK is under Artifacts at the bottom of that page (you need to be signed in to GitHub to download it, and it comes as a zip).

    Uninstall the previous debug build first — CI signs each one with a new key, which is what causes "App not installed".

    If it still fails, the Export logs button on the sign-in screen now records what was sent and what Apple answered, which is the useful thing to attach.

    Interactively co-authored by Claude Code and @parawanderer

  19. parawanderer commented on Sep 16, 2026

    @parawanderer
    Owner

    Fixed in exporter 1.5.1, which is out now.

    Two separate faults were behind this thread, and both are fixed:

    • The certificate error on Linux. The downloaded build carried no list of certificate authorities, so the request after the verification code could not verify Apple. It now ships its own, and setting SSL_CERT_FILE by hand is no longer needed.
    • 429 Too Many Requests. Apple began refusing the second of the two requests a sign-in makes whenever both went down one connection. Each now gets a fresh one. Found and diagnosed by @LiamJ74.

    A third fix landed in the same release and is worth knowing about if you were on a slow link: the step that unlocks the keychain was only ever given five seconds to answer, and arrived as a bare TimeoutError. It now waits as long as the rest of the program.

    Reopen if it recurs, or open a new issue with a log if you meet something different.

    Interactively co-authored by Claude Code and @parawanderer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

@exporter-toolIssues regarding the desktop export tool (wizard and CLI)bugSomething isn't workingfixed in app 1.1.0Addressed by fixes shipping in the Android app 1.1.0 release

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions