2bc4 / twitch-hls-client

Minimal CLI client for watching/recording Twitch streams
GNU General Public License v3.0
22 stars 5 forks source link

Worker error: [92] Stream error in the HTTP/2 framing layer (HTTP/2 stream 841 was not closed cleanly: INTERNAL_ERROR (err 2)) #26

Closed brian6932 closed 6 months ago

brian6932 commented 6 months ago

Got this twice

[INFO] Fetching playlist for channel streamer (Twitch)
[INFO] Opening player: mpv - --force-window=yes
Worker error: [92] Stream error in the HTTP/2 framing layer (HTTP/2 stream 841 was not closed cleanly: INTERNAL_ERROR (err 2))
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: BaseThreadInitThunk
   7: RtlUserThreadStart
brian6932 commented 6 months ago

Got a new error code with the same error

15:39:39.60533 [DEBUG] (2) twitch_hls_client::http: HTTP/2 stream 2203 was not closed cleanly: INTERNAL_ERROR (err 2)
15:39:39.60535 [DEBUG] (2) twitch_hls_client::http: Connection #0 to host amsh.ext.cloudfront.live.hls.ttvnw.net left intact
Worker error: [92] Stream error in the HTTP/2 framing layer (HTTP/2 stream 2203 was not closed cleanly: INTERNAL_ERROR (err 2))
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: BaseThreadInitThunk
   7: RtlUserThreadStart
2bc4 commented 6 months ago

If it still happens with that commit then I might have to disable http2, haven't seen this on my end yet though.

2bc4 commented 6 months ago

Yeah I can't get curl to throw this error at all :/ Maybe difference in Windows version? I test in a Win11 Enterprise VM.

brian6932 commented 6 months ago

I'm on Win 10 Enterprise LTSC IoT, I have both a curl install in $env:ProgramData, and the one that comes with Windows

❯ $_=Get-ItemProperty 'HKLM:/SOFTWARE/Microsoft/Windows NT/CurrentVersion';$_.CurrentBuild+'.'+$_.UBR
19044.3803
2bc4 commented 6 months ago

Thanks, I was able to reproduce the error on Win 10 LTSC. Going to see if statically linking curl or switching TLS backends prevents it.

brian6932 commented 6 months ago

I'm a bit confused, https://github.com/curl/curl/issues/3206 should be fixed(?), or somehow a Twitch related issue, not sure why this occurs, especially if the lib's statically linked.

Brian ~
❯ where.exe curl
C:\ProgramData\scoop\shims\curl.exe
c:\Windows\System32\curl.exe
Brian ~
❯ c:\Windows\System32\curl.exe --version
curl 8.4.0 (Windows) libcurl/8.4.0 Schannel WinIDN
Release-Date: 2023-10-11
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS HSTS HTTPS-proxy IDN IPv6 Kerberos Largefile NTLM SPNEGO SSL SSPI threadsafe Unicode UnixSockets
Brian ~
❯ curl --version
curl 8.5.0 (x86_64-w64-mingw32) libcurl/8.5.0 LibreSSL/3.8.2 (Schannel) zlib/1.3 brotli/1.1.0 zstd/1.5.5 WinIDN libssh2/1.11.0 nghttp2/1.58.0 ngtcp2/1.1.0 nghttp3/1.1.0
Release-Date: 2023-12-06
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp ws wss
Features: alt-svc AsynchDNS brotli HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL SSPI threadsafe UnixSockets zstd
2bc4 commented 6 months ago

I don't know tbh. I ultimately still reproduced it with an official build of CLI curl.exe 8.5.0 (by just spawning ./curl.exe with the segment urls) so it's definitely a curl issue. I didn't debug into why it's happening though (and why only on win10?).