OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api.telegram.org:443

When I try to request Telegram’s https://api.telegram.org from three of my DigitalOcean droplets with Cloudflare enabled, I’m getting OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api.telegram.org:443.

The error started occurring four or five days ago.

  • No changes or updates were made to the servers.
  • And it happens only for Telegram URLs.

Two of them have flexible SSL and the third one has a full strict SSL.

Here is the curl request:

curl -v https://api.telegram.org
* Rebuilt URL to: https://api.telegram.org/
*   Trying 149.154.167.220...
* TCP_NODELAY set
* Connected to api.telegram.org (149.154.167.220) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
*   CAfile: /etc/ssl/certs/ca-certificates.crt
  CApath: /etc/ssl/certs
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api.telegram.org:443
* stopped the pause stream!
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to api.telegram.org:443
curl -v https://api.telegram.org
* Rebuilt URL to: https://api.telegram.org/
*   Trying 149.154.167.220...
* Connected to api.telegram.org (149.154.167.220) port 443 (#0)
* found 148 certificates in /etc/ssl/certs/ca-certificates.crt
* found 594 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: Error in the pull function.
* Closing connection 0
curl: (35) gnutls_handshake() failed: Error in the pull function.

What is the issue?

Cloudflare is not involved here because you server initiates the connection with its IP diretly from DigitalOcean.