Skip to content

HTTP=401 #60846

Closed as duplicate
Closed as duplicate

Description

@novikevgeni-star

OpenCode Desktop/CLI v2.0.28, Windows.

OpenCode Go Plus subscription is active:
rolling usage 0%, weekly usage 3%, monthly usage 2%.

Requests through OpenCode Go fail with ECONNRESET.
The background server repeatedly logs:

failed to load OpenCode provider config
GET https://opencode.ai/console/api/v2/config
HttpClientError: Transport error
TypeError: ECONNRESET: The socket connection was closed unexpectedly.

Diagnostics:

  • curl successfully loads https://opencode.ai and /console/ (HTTP 200).
  • Unauthenticated curl requests to /console/api/v2/config return
    HTTP 401, without connection resets.
  • Tested all four resolved IPv4 addresses using curl --resolve:
    172.65.90.20, 172.65.90.21, 172.65.90.22, 172.65.90.23.
    All return HTTP 401.
  • No HTTP_PROXY, HTTPS_PROXY, ALL_PROXY or NO_PROXY values
    in the current PowerShell session or saved service configuration.
  • WinHTTP reports direct access.
  • VPN is off.
  • Switching the PC to a mobile hotspot did not fix the issue.
  • opencode service restart changed the server run ID,
    but the connection resets persist.
  • The separate Z.ai connection returned a quota-limit error;
    that error is unrelated to the OpenCode Go subscription.

Please investigate why the OpenCode client connection resets
while curl reaches the same endpoint, and confirm that the
Go Plus subscription is correctly associated with my account/workspace.

Activity

  1. opencodejr commented on Oct 31, 2026

    @opencodejr
    Contributor

    Thanks for the detailed diagnostics. Comparing with curl made this easy to place.

    I think this is a duplicate of #60399. Your pattern matches it exactly: OpenCode 2.x gets ECONNRESET on https://opencode.ai/console/api/v2/config, while curl to the same endpoint and the same IPs gets a normal HTTP 401. The cause found there is network traffic filtering (DPI) that drops or resets the TLS handshake (ClientHello) sent by OpenCode 2.x's bundled runtime. That handshake includes a post-quantum key share, which makes it about 1.5 KB. curl's handshake is much smaller and gets through. The connection is cut before any HTTP request is sent, so the client never sees the 401. A mobile hotspot often doesn't help, because mobile carriers in the same region can filter in the same way. In the related reports, a VPN or a DPI-bypass tool fixed it. Ensure the tool covers opencode.ai, models.dev and registry.npmjs.org. #60399 has more measurements and workarounds.

    Possible duplicates and related issues, ordered from most to least likely:

    About your subscription: your usage figures show Go Plus is active, and this error happens before any request reaches the account check. If you still want the team to confirm that the subscription is linked to your account or workspace, please email [email protected]. Keep account details and email addresses out of this public issue.

    The bot will close this issue as a duplicate in 1 day, unless you reply explaining how your problem is different.

  2. opencodejr commented on Nov 1, 2026

    @opencodejr
    Contributor

    Closing this as a duplicate of #60399, since there's been no reply showing a difference. Your symptoms match it: OpenCode 2.x gets ECONNRESET on https://opencode.ai/console/api/v2/config, while curl to the same endpoint and IPs gets a normal HTTP 401. Both point to network filtering (DPI) dropping the larger post-quantum TLS handshake that OpenCode 2.x sends.

    Please follow #60399 for updates and workarounds. In related reports, a VPN or a DPI-bypass tool covering opencode.ai, models.dev and registry.npmjs.org fixed it. To have the team confirm your Go Plus subscription, email [email protected]. If a VPN doesn't fix it, or your problem turns out to be different, reply here and we can reopen.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions