Skip to content

Redirect bug - failed to round trip: net/http: HTTP/1.x transport connection broken #23

@dushankw

Description

@dushankw

Hello,

Thank you for open sourcing this excellent library!

I am starting to play with it and have noticed an issue with the sample code that suggests an issue in the library itself.

I have built the example and have it working perfectly for most sites (with a new CA I have generated and added to my trust store for TLS MitM), I have also removed the proxy authentication in the example.

I am testing it on Linux via chromium-browser --proxy-server="https://127.0.0.1:3333" so there's no iptables manipulation going on to add complexity.

The problem is that the proxy breaks on the login for ChatGPT https://chat.openai.com/auth/login

I am unsure if AdGuard itself is impacted, as I am not currently running it.

The log output from my proxy binary is as follows:

2024/03/04 11:51:07 7271#321 [debug] id=100022-1-1-2: handle request POST https://chat.openai.com/api/auth/signin/login-web?prompt=login
2024/03/04 11:51:07 7271#321 [error] id=100022-1-1-2: failed to round trip: net/http: HTTP/1.x transport connection broken: http: ContentLength=100 with Body length 0
2024/03/04 11:51:07 7271#321 [debug] id=100022-1-1-2: received response 502 Bad Gateway
2024/03/04 11:51:07 7271#321 [info] onResponse: https://chat.openai.com/api/auth/signin/login-web?prompt=login
2024/03/04 11:51:07 7271#321 [debug] id=100022-1-1-2: received close request
2024/03/04 11:51:07 7271#321 [debug] id=100022-1-1: closing connection due to: closing connection
2024/03/04 11:51:07 7271#321 [debug] id=100022: closing connection due to: closing connection

Based specifically on failed to round trip: net/http: HTTP/1.x transport connection broken: http: ContentLength=100 with Body length 0, what I believe is happening here is as follows:

  1. The ChatGPT front end loads successfully via the proxy
  2. You click login and a request is made to the login service - the front end is a React application so it is not making a full reload of the page (NOTE: Possibly other React applications may be impacted - I will update the issue if I find more)
  3. Because a new request has not been made, the body is now empty because the http.request body is a buffer and once it is read in the first call, the buffer becomes empty and there is no body content to send in redirect call.

@ameshkov if you could please advise I would greatly appreciate it, thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions