Robert Chalmers

Jul 6, 20201 min

cURL error 28 in Site HEalth

I was having an eternal problem trying to fix this issue in the Site Health. I kept getting an error 28 for cURL trying to talk to exactmetrics.com.

So now it's fixed. I added a few lines to functions.php like this and it's now gone away.

// Setting a custom timeout value for cURL. Using a high value for priority to ensure the function runs after any other added to the same action hook.
 
add_action('http_api_curl', 'sar_custom_curl_timeout', 9999, 1);
 
function sar_custom_curl_timeout( $handle ){
 
curl_setopt( $handle, CURLOPT_CONNECTTIMEOUT, 30 ); // 30 seconds. Too much for production, only for testing.
 
curl_setopt( $handle, CURLOPT_TIMEOUT, 30 ); // 30 seconds. Too much for production, only for testing.
 
}
 

 
// Setting custom timeout for the HTTP request
 
add_filter( 'http_request_timeout', 'sar_custom_http_request_timeout', 9999 );
 
function sar_custom_http_request_timeout( $timeout_value ) {
 
return 30; // 30 seconds. Too much for production, only for testing.
 
}
 

 
// Setting custom timeout in HTTP request args
 
add_filter('http_request_args', 'sar_custom_http_request_args', 9999, 1);
 
function sar_custom_http_request_args( $r ){
 
$r['timeout'] = 30; // 30 seconds. Too much for production, only for testing.
 
return $r;
 
}

    10
    0