Home > database >  cURL Error #:SSL_write() error: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry - PHP
cURL Error #:SSL_write() error: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry - PHP

Time:12-28

When I try to send a cURL request, I get the following error:

*  SSL certificate verify ok.
> * SSL_write() error: error:1409F07F:SSL routines:ssl3_write_pending:bad write retry
* Closing connection 0

this is the request I am sending:

$url = 'https://example.com/services/service-name';
$curl = curl_init();
curl_setopt_array($curl, array(
        CURLOPT_URL => $url,
        CURLOPT_POST => true,
        CURLOPT_POSTFIELDS => $postData,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_HTTPHEADER => $headers,
        CURLOPT_SSL_VERIFYPEER => true,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2,
        CURLOPT_VERBOSE => true,
        CURLOPT_STDERR => $fp,
));
$response = curl_exec($curl);

Sometimes it works, but other times it gives me the SSL error "Curl Error Number 55".

Curl version:   7.84.0 
SSL version:    OpenSSL/1.1.1p

On localhost, it works all the time, but on production server "Linux" it keeps giving me the SSL error. Any help is greatly appreciated

CodePudding user response:

After trying everything I know, the problem was related to DNS using IPv6 instead of IPv4. I forced the cURL request to use IPv4 and haven't received any error since

curl_setopt($curl, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
  • Related