curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2) #138

Closed
opened 2026-01-19 18:29:07 +00:00 by michael · 24 comments
Owner

Originally created by @OfekShochat on GitHub.

doing this curl --upload-file quiet_01.txt https://transfer.sh and it returns curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)

Originally created by @OfekShochat on GitHub. doing this `curl --upload-file quiet_01.txt https://transfer.sh` and it returns `curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)`
Author
Owner

@OfekShochat commented on GitHub:

* Connected to transfer.sh (144.76.136.153) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/pki/tls/certs/ca-bundle.crt
*  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305
* ALPN, server accepted to use h2
* Server certificate:
*  subject: CN=transfer.sh
*  start date: Nov  4 15:59:05 2021 GMT
*  expire date: Feb  2 15:59:04 2022 GMT
*  subjectAltName: host "transfer.sh" matched cert's "transfer.sh"
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.
* Using HTTP2, server supports multiplexing
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
* Using Stream ID: 1 (easy handle 0x55c7bbabc0c0)
> PUT /quiet_01.txt.gz HTTP/2
> Host: transfer.sh
> user-agent: curl/7.79.1
> accept: */*
> content-length: 251688855
> 
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
* HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)
* stopped the pause stream!
* Connection #0 to host transfer.sh left intact
curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2)
@OfekShochat commented on GitHub: ```* Trying 144.76.136.153:443... * Connected to transfer.sh (144.76.136.153) port 443 (#0) * ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt * CApath: none * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305 * ALPN, server accepted to use h2 * Server certificate: * subject: CN=transfer.sh * start date: Nov 4 15:59:05 2021 GMT * expire date: Feb 2 15:59:04 2022 GMT * subjectAltName: host "transfer.sh" matched cert's "transfer.sh" * issuer: C=US; O=Let's Encrypt; CN=R3 * SSL certificate verify ok. * Using HTTP2, server supports multiplexing * Connection state changed (HTTP/2 confirmed) * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0 * Using Stream ID: 1 (easy handle 0x55c7bbabc0c0) > PUT /quiet_01.txt.gz HTTP/2 > Host: transfer.sh > user-agent: curl/7.79.1 > accept: */* > content-length: 251688855 > * Connection state changed (MAX_CONCURRENT_STREAMS == 128)! * HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2) * stopped the pause stream! * Connection #0 to host transfer.sh left intact curl: (92) HTTP/2 stream 0 was not closed cleanly: INTERNAL_ERROR (err 2) ```
Author
Owner

@paolafrancesca commented on GitHub:

thanks

can you test the upload adding --http1.1 param to curl?

@stefanbenten you might want to look into this

@paolafrancesca commented on GitHub: thanks can you test the upload adding `--http1.1` param to curl? @stefanbenten you might want to look into this
Author
Owner

@OfekShochat commented on GitHub:

Hmm when adding --http1.1 I get an empty reply

@OfekShochat commented on GitHub: Hmm when adding --http1.1 I get an empty reply
Author
Owner

@OfekShochat commented on GitHub:

Sure

@OfekShochat commented on GitHub: Sure
Author
Owner

@paolafrancesca commented on GitHub:

@OfekShochat can you add -v to curl parms and copy the output?

I just uploaded a file and I had no issue

@paolafrancesca commented on GitHub: @OfekShochat can you add `-v` to curl parms and copy the output? I just uploaded a file and I had no issue
Author
Owner

@OfekShochat commented on GitHub:

* Connected to transfer.sh (144.76.136.153) port 443 (#0)
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*  CAfile: /etc/pki/tls/certs/ca-bundle.crt
*  CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305
* ALPN, server accepted to use http/1.1
* Server certificate:
*  subject: CN=transfer.sh
*  start date: Nov  4 15:59:05 2021 GMT
*  expire date: Feb  2 15:59:04 2022 GMT
*  subjectAltName: host "transfer.sh" matched cert's "transfer.sh"
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.
> PUT /quiet_01.txt.gz HTTP/1.1
> Host: transfer.sh
> User-Agent: curl/7.79.1
> Accept: */*
> Content-Length: 251688855
> Expect: 100-continue
> 
* TLSv1.2 (IN), TLS alert, close notify (256):
* Empty reply from server
* Closing connection 0
* TLSv1.2 (OUT), TLS alert, close notify (256):
curl: (52) Empty reply from server
@OfekShochat commented on GitHub: ```* Trying 144.76.136.153:443... * Connected to transfer.sh (144.76.136.153) port 443 (#0) * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/pki/tls/certs/ca-bundle.crt * CApath: none * TLSv1.3 (OUT), TLS handshake, Client hello (1): * TLSv1.3 (IN), TLS handshake, Server hello (2): * TLSv1.2 (IN), TLS handshake, Certificate (11): * TLSv1.2 (IN), TLS handshake, Server key exchange (12): * TLSv1.2 (IN), TLS handshake, Server finished (14): * TLSv1.2 (OUT), TLS handshake, Client key exchange (16): * TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1): * TLSv1.2 (OUT), TLS handshake, Finished (20): * TLSv1.2 (IN), TLS handshake, Finished (20): * SSL connection using TLSv1.2 / ECDHE-RSA-CHACHA20-POLY1305 * ALPN, server accepted to use http/1.1 * Server certificate: * subject: CN=transfer.sh * start date: Nov 4 15:59:05 2021 GMT * expire date: Feb 2 15:59:04 2022 GMT * subjectAltName: host "transfer.sh" matched cert's "transfer.sh" * issuer: C=US; O=Let's Encrypt; CN=R3 * SSL certificate verify ok. > PUT /quiet_01.txt.gz HTTP/1.1 > Host: transfer.sh > User-Agent: curl/7.79.1 > Accept: */* > Content-Length: 251688855 > Expect: 100-continue > * TLSv1.2 (IN), TLS alert, close notify (256): * Empty reply from server * Closing connection 0 * TLSv1.2 (OUT), TLS alert, close notify (256): curl: (52) Empty reply from server ```
Author
Owner

@stefanbenten commented on GitHub:

May i ask where you are located at? This could possibly be the geoblocking that takes place here.

@stefanbenten commented on GitHub: May i ask where you are located at? This could possibly be the geoblocking that takes place here.
Author
Owner

@paolafrancesca commented on GitHub:

can you past the -v output?

@paolafrancesca commented on GitHub: can you past the `-v` output?
Author
Owner

@stefanbenten commented on GitHub:

It is there because of abuse, but i am sure you know that already.

@stefanbenten commented on GitHub: It is there because of abuse, but i am sure you know that already.
Author
Owner

@OfekShochat commented on GitHub:

just tried with tor, seems that it is!
not that of a good thing tho

@OfekShochat commented on GitHub: just tried with tor, seems that it is! not that of a good thing tho
Author
Owner

@ShivamJoker commented on GitHub:

@stefanbenten it's happening same on my computer as well (location: India)

@ShivamJoker commented on GitHub: @stefanbenten it's happening same on my computer as well (location: India)
Author
Owner

@ShivamJoker commented on GitHub:

@ShivamJoker India is one of the countries being blocked.

You mean you have blocked it here ? or our government has

@ShivamJoker commented on GitHub: > @ShivamJoker India is one of the countries being blocked. You mean you have blocked it here ? or our government has
Author
Owner

@OfekShochat commented on GitHub:

So you know, my country shouldn't be blocked tbh

@OfekShochat commented on GitHub: So you know, my country shouldn't be blocked tbh
Author
Owner

@stefanbenten commented on GitHub:

@ShivamJoker India is one of the countries being blocked.

@stefanbenten commented on GitHub: @ShivamJoker India is one of the countries being blocked.
Author
Owner

@OfekShochat commented on GitHub:

Reopened it by mistake

@OfekShochat commented on GitHub: Reopened it by mistake
Author
Owner

@stefanbenten commented on GitHub:

Its not in the code currently as its done on a lower level. I can fetch the list soon.

@stefanbenten commented on GitHub: Its not in the code currently as its done on a lower level. I can fetch the list soon.
Author
Owner

@stefanbenten commented on GitHub:

@OfekShochat @ShivamJoker We blocked it, not the government. We sadly see very high abuse in various forms from a couple of countries (including India). We are working on a couple of improvements to reduce the abuse (eg. virus scanning) which hopefully allows us to remove the restrictions currently put in place.

@stefanbenten commented on GitHub: @OfekShochat @ShivamJoker We blocked it, not the government. We sadly see very high abuse in various forms from a couple of countries (including India). We are working on a couple of improvements to reduce the abuse (eg. virus scanning) which hopefully allows us to remove the restrictions currently put in place.
Author
Owner

@OfekShochat commented on GitHub:

Thanks.

@OfekShochat commented on GitHub: Thanks.
Author
Owner

@OfekShochat commented on GitHub:

Not in India

@OfekShochat commented on GitHub: Not in India
Author
Owner

@OfekShochat commented on GitHub:

Where's the list? Not feeling like browsing the code

@OfekShochat commented on GitHub: Where's the list? Not feeling like browsing the code
Author
Owner

@OfekShochat commented on GitHub:

Not much to update, it's geolocked with no way to check who's locked or not unfortunately

@OfekShochat commented on GitHub: Not much to update, it's geolocked with no way to check who's locked or not unfortunately
Author
Owner

@ShivamJoker commented on GitHub:

Why not block some regions instead of the whole country ? 😒

@ShivamJoker commented on GitHub: Why not block some regions instead of the whole country ? 😒
Author
Owner

@OfekShochat commented on GitHub:

Cuz it's the easiest way

@OfekShochat commented on GitHub: Cuz it's the easiest way
Author
Owner

@ShivamJoker commented on GitHub:

Any updates on this?

@ShivamJoker commented on GitHub: Any updates on this?
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dutchcoders/transfer.sh#138