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.
In fact, this error message indicates that a connection to a remote server was unexpectedly closed by the peer while cURL was trying to receive data.
Maybe the server abruptly closed the connection before cURL could receive any data, causing the “recv failure.”
This issue can also occur on CentOS and other OSs for different reasons. Here are some common causes and troubleshooting steps:
- The remote server may experience issues like high load, crashing, and improper configuration. This resets the connection.
- Firewall rules or security policies on the server may be terminating the connection.
- Network interruptions or unstable network connections between the CentOS machine and the remote server can cause this error.
- Misconfigured network equipment along the path can also result in connection resets.
- Firewall rules or security settings on the CentOS machine may interfere with the connection.
- Incorrect cURL options or usage may cause the problem.
For instance, the error appears as follows.
Let’s detail how our Support Engineers fix this for our customers.
How do 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.
Bad repository
Often bad repository URLs can also trigger curl 56 errors.
For instance, while trying to install PHP on the 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.
Additional Tips
- Make sure the remote server is up and running properly.
- Look for any known issues or maintenance notifications from the service provider.
- Check the network connection and try to access other resources to confirm there are no general connectivity issues.
- Use tools like ping or traceroute to diagnose network problems.
- Try increasing the timeout settings using –connect-timeout and –max-time.
- Use the -v option with cURL to get more detailed output, which can help in diagnosing the problem.
- Make sure to use the correct URL and HTTP method.
- Verify that the local firewall settings are not blocking the connection.
- Check if there are any security appliances (like an IDS/IPS) that might be resetting the connection.
- Examine the URL used in the cURL command. Ensure it’s correct and includes the protocol (http:// or https://).
- On the CentOS machine, use tools like firewall-cmd –list-all to see if any firewall rules are blocking outgoing connections on the relevant port (usually 80 or 443).
- If possible, try running the same cURL command from a different network to rule out issues with your local network.
[Need assistance in fixing cURL errors? – We can help you.]
Conclusion
In short, cURL 56 recv failure connection reset by a 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.
I got this error because I set app up to require SSL certificate but i did not have https in the url. This blog helped me realize that right away. Thank you!
Hi,
Glad to know that our article helps you solves the issue ? .
Im still stuck in this error i have pull the image of jenkins application by creating dockerfile and when i went to
run jenkins application on port so got this error
curl localhost:9090
connection reset by peer how could i solve this issue
could anaybody guide me
Hi Vaibhav,
Our experts can help you with the issue.we will be happy to talk to you through our live chat(click on the icon at right-bottom).
While connecting to the valid url from rhel8 vm getting below error how we can resolve this issue
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
Hi Suchita,
Our experts can help you with the issue.we will be happy to talk to you through our live chat(click on the icon at right-bottom).
Hi, While I am downloading a file using curl command in Windows terminal, I close internet connection but curl gives me “curl: (56) Recv failure: Connection was reset” error. I expect curl is waiting for internet reconnection. In other hand, when I try it on Linux terminal, I don’t get error but download process doesn’t continue after internet reconnection. How can I resolve this?
Hello,
Please contact our support team via live chat(click on the icon at right-bottom).