user
user

Reputation: 4830

How to fix git error: RPC failed; curl 56 GnuTLS

I use Ubuntu 16.04. When I want to git push origin master I get:

error: RPC failed; curl 56 GnuTLS recv error (-12): A TLS fatal alert has been received.
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

Upvotes: 149

Views: 315344

Answers (30)

James Idowu
James Idowu

Reputation: 261

If you use a Mac Just update your cocoapods, use this command below

sudo get install cocoapods

Upvotes: 0

arielhad
arielhad

Reputation: 2153

The only thing that helped us fixing this issue is using ssh instead of https

Upvotes: 0

Surya Sonar
Surya Sonar

Reputation: 1

Updating git solved the issue for me.

Upvotes: 0

Rachid Lajmi
Rachid Lajmi

Reputation: 1

I have a slow internet connection because I am traveling and this solution worked for me!

git config --global core.compression 0
git clone --depth 1 <repo_URI>

Upvotes: 0

Shubham AgaRwal
Shubham AgaRwal

Reputation: 4825

The accepted answer from @harlequin might work, but I spend 2 hours and could not build git package from source code.

However, Check the below link as this works for me.

The remote end hung up unexpectedly while git cloning

just update the http post buffer value

git config --global http.postBuffer 1048576000
git config --global https.postBuffer 1048576000

Upvotes: 145

kpeo
kpeo

Reputation: 51

In my case

git config --global http.sslBackend openssl

fixed the issue

Upvotes: 2

SM79
SM79

Reputation: 1264

WSL2 users getting this with Ubuntu 18, see this issue. Basically you need to update your wireless driver.

Ok. So updating my wifi chipset drivers fixed the issue. In case anyone else runs into the above, the drivers i updated to were found here: https://downloadcenter.intel.com/download/28794/Windows-10-Wi-Fi-Drivers-for-Intel-Wireless-Adapters?product=99446

Upvotes: 8

Moses Chan
Moses Chan

Reputation: 25

If all answers above are not working for you, you should check if you've enabled any kind of proxy before :

git config --global http.proxy ""

Upvotes: 1

GeorgUr
GeorgUr

Reputation: 91

In my case the problem was that i was using the https instead of the git protocol. In my config file I forced git to use https.

[url "https://"]
        insteadOf = git://

By removing this from my config I was able to clone the required repository.

Upvotes: 0

Joss Bird
Joss Bird

Reputation: 311

Turns out I was behind a firewall that didn't allow access to Github, I solved this by contacting my ISP and disabling virus protection.

Upvotes: -1

Hassan Asghar
Hassan Asghar

Reputation: 11

I solved it by just running single command

apt upgrade (being root user)

Upvotes: 1

Ganesh_KC
Ganesh_KC

Reputation: 11

I am facing the same issue since yesterday, but now successfully solved that issue.

First, remove the git package and any other dependent package

$ sudo apt-get remove git

and then install git

sudo apt-get install git-all

Upvotes: 1

Maruf Sharifi
Maruf Sharifi

Reputation: 81

This solved my problem

$ git config http.sslVerify false
$ git config http.postBuffer 1048576000

Upvotes: 0

TheBenjiManCan
TheBenjiManCan

Reputation: 1

If you are are running the git server service, then rather than it be a git client issue ... perhaps it's a git server issue too ! This is what the solution was for me...

We were running a gitbucket server with a front-end nginx reverse proxy for https.

Following a major system OS version upgrade, we started getting this error across all git clients. Turns out that nginx got replaced and the new package's default nginx.conf got installed. The default nginx user 'www-data' was NOT what it used to be.

Somewhere underneath it all, there must have been a permissions issue, because resetting the nginx user back to it's former value, and restarting nginx got everything going again. .... go figure ! (Yes I had restarted nginx many times prior to the one singular change that solved it)

Upvotes: 0

Pradeep Thakur
Pradeep Thakur

Reputation: 151

For Linux: Simple you can run below commands:

1) git config -l
2) git config --global http.postBuffer 524288000
        Or set double value  1048576000
3) git config --global https.postBuffer 
4) git config --global core.compression -1 
5) service apache2 restart

Then again check the config of git

git config -l

now you can run clone command

git clone yourrepo

I hope this will be solved the issue.

Upvotes: 4

James Jones
James Jones

Reputation: 51

I saw similar issues (particularly with depth) on some legacy projects when we were cloning that used to live on TFS. Enabling long paths resolved our issue and may be something else worth trying.

git config --system core.longpaths true

Upvotes: 5

EdMc2
EdMc2

Reputation: 1

I had a similar fault:

error: RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received.

when trying to clone a repository from Github.

After trying most of the solutions posted here, none of which worked, it turned out to be the parental controls on our home network. Turning these parental controls off solved the problem.

Upvotes: 0

soapdish
soapdish

Reputation: 75

Had the same problem hosting Go Git Server behind nginx and cloning:

remote: Enumerating objects: 103, done. remote: Counting objects: 100% (103/103), done. remote: Compressing objects: 100% (47/47), done. remote: Total 103 (delta 52), reused 99 (delta 51), pack-reused 0 Receiving objects: 100% (103/103), 11.56 KiB | 1.16 MiB/s, done. Resolving deltas: 100% (52/52), done. error: RPC failed; curl 56 GnuTLS recv error (-110): The TLS connection was non-properly terminated.

After searching RPC based issues, there appears to he a requirement to use HTTP2

Therefore this line in my nginx site configuration:

listen 443 ssl; # managed by Certbot

Was changed to this, to enable http2 - which is not a default:

listen 443 ssl http2; # managed by Certbot

And TLS in general seems happier (i.e. I had other errors regarding curl and TLS, when inspecting verbose output)

I have verified this as a root cause by removing http2, which reproduces the error and reinstating http2 resolves the problem.

Upvotes: 0

Siddharth
Siddharth

Reputation: 9574

My mac was connected to a 2.5GHZ network, I had to enable my wifi to 5GHz. And the problem disappeared.

Upvotes: -1

M.Namjo
M.Namjo

Reputation: 492

I solved this problem by disconnecting my VPN (My OS is ubuntu-16.04).

Upvotes: 3

simple
simple

Reputation: 1

I met the same question, and solved it by using SSH protocol.

git clone [email protected]:micro/micro.git

Upvotes: 0

mouserat
mouserat

Reputation: 1985

I got this error while i tried to push a new branch upstream

git push --set-upstream origin xyz

I tried almost all of the git config edits suggested above including a system reboot. Nothing worked.

So I went back to master and did a pull, went back to my xyz branch, did a merge with master and was able to push.

* currently on branch xyz
git checkout master
git pull
git checkout xyz
git merge master
git push --set-upstream origin xyz

I have to say nothing in master conflicted with any of my changes in my new branch "xyx". Only a couple of new commits from master were merged to my "xyz" branch. This shouldn't have been a problem on normal days.

Upvotes: 0

Josh
Josh

Reputation: 2468

I tried all the above without success. Eventually I realised I had a weak WiFi connection and therefore slow download speed. I connected my device VIA Ethernet and that solved my problem straight away.

Upvotes: 0

Thiago L&#250;cio
Thiago L&#250;cio

Reputation: 104

Try to disable your IPV6 for that and disable after. I think this is your problem.

Upvotes: 1

chenlola
chenlola

Reputation: 71

Additionally,this error may occurs in you are using any proxy in command line.

if you export any proxy before , unset it .

$ unset all_proxy && unset ALL_PROXY

Upvotes: 1

Leo Tavares
Leo Tavares

Reputation: 375

I just managed to solve this by cloning using SSH.

To do that I had to add my machine's SSH key to my account.

Upvotes: 1

hsandt
hsandt

Reputation: 760

I have a workaround if you need to clone or pull and the problem lies in the size of the repository history. It may also help when you want to push later, with no guarantee.

Simply retrieve the last commits with --depth=[number of last commits].

You can do this at clone time, or, if working from a local repository to which you added a remote, at pull time. For instance, to only retrieve the last commit (of each branch):

git clone repo --depth=1
# or
git pull --depth=1

UPDATE: if the remote is getting too much ahead of you, the issue may come back later as you try to pull the last changes, but there are too many and the connection closes with curl 56. You may have to git pull --depth=[number of commits ahead on remote], which is tedious if you're working on a very active repository.

Upvotes: 34

user10926450
user10926450

Reputation:

Check your Network is properly working...this problem also occures because of internet issues

Upvotes: 1

陈家胜
陈家胜

Reputation: 758

After reading your posts, I solved it simply by

apt install gnutls-bin

Upvotes: 48

tushortz
tushortz

Reputation: 5045

All I did was disconnect and reconnect my pc from the wifi and it worked. Sometimes the answer might be very simple. Mine works now

Upvotes: 2

Related Questions