How to fix cURL 56 recv failure connection reset by peer in CentOS?
Having trouble with cURL 56 recv failure connection reset by peer in the CentOS server?
The error occurs mainly due to failure in receiving network data.
At Bobcares, we often get requests to fix cURL errors as part of our Server Management Services.
Today, let’s get into the details on how our Support Engineers fix this error.
Why does cURL 56 recv failure connection reset by peer occurs?
cURL error 56 is a temporary error that happens due to different reasons like, idle server connection, firewall restrictions, whitespace in the URL, etc.
For instance, the error appears as follows.
Let’s detail how our Support Engineers fix this for our customers.
How we fix this error cURL error?
At Bobcares, we have more than a decade of expertise in managing servers, we see many customers facing errors. It happens mainly when fetching package updates, installing new software, etc.
Now, let’s see the major reasons and how our Support Engineers fix this error.
Idle server connection
Recently, one of the customers approached us with a cURL error. He was getting the following error while transferring the backup to the remote destination.
cURL error 56: TCP connection reset by peer
So we checked the backup log files and confirmed that the backups have been generated successfully.
On further checking, we found that the server was idle while transferring the backups to the remote destination. However, the backups were successfully exported to Google drive.
In addition, to avoid this situation, the tips we follow are:
- We always upgrade the user’s OS to avoid TCP/IP issues.
- Also, we use the recent versions of PHP and cURL.
- Set the Maximum Transmission Unit (MTU) or the size of packets traveling over the network to the default value, 1500 bytes.
- We ensure that the firewall is not blocking the user’s connection.
Often bad repository URL can also trigger curl 56 errors.
For instance, while trying to install PHP on CentOS7 server one of our customers received the error:
Loaded plugins: fastestmirror, langpacks http://mirror.xxx.net/el7-x86_64/rpms/ ... repomd.xml: [Errno 14] curl#56 - "Recv failure: Connection reset by peer" Trying other mirror.
Here, the customer was using an outdated repository and that caused the error. Therefore, we corrected the repo settings on the server and the package install went on fine.
Similarly, the repository may fail to load due to DNS resolution failures as well. In such scenarios, we make use of the /etc/hosts files to map the repo website to the correct IP address.
Whitespace in the URL
Another customer approached us with a similar problem.
On further investigation, we found whitespace in the URL. We then removed whitespace from the URL.
And in the PHP settings, we added the following.
curl_setopt($ch, CURLOPT_URL, trim($url));
In addition, If whitespace is a valid part of the URL, we use rawurlencode() function in PHP, to store the URL as encoded including whitespace.
[Need assistance in fixing cURL errors? – We can help you.]
In short, cURL 56 recv failure connection reset by peer in CentOS occurs when the server is idle due to running a long process or due to improper usage of URL. Today, we saw how our Support Engineers fixed the error.