github icon indicating copy to clipboard operation
github copied to clipboard

Fetch fails over HTTPS with error "fatal: protocol error: bad line length 2"

Open qubist opened this issue 4 years ago • 20 comments

Prerequisites

[I can't reproduce this in safe mode because it doesn't happen when Atom is launched from the terminal.]

Description

Fetching in Atom results in an error. Fetching through the terminal works fine.

Steps to Reproduce

  1. Clone a GitHub repository with HTTPS
  2. Commit and push a change from a different machine
  3. Click the fetch button on the bottom right in Atom

Expected behavior:

Atom should fetch the change and allow you to pull

Actual behavior:

Atom produces this error:

Unable to fetch
protocol error: bad line length 2
Screen Shot 2021-09-28 at 2 37 26 PM

In Developer Tools Console, this message appears:

index.html:1 Uncaught (in promise) Error
    at new GitError (/Applications/Atom.app/Contents/Resources/app/static/<embedded>:14)
    at /Applications/Atom.app/Contents/Resources/app/static/<embedded>:14
Screen Shot 2021-09-28 at 3 39 01 PM

Reproduces how often:

Every time. However, here are situations where the error doesn't occur (at least on my machine):

  • I opened Atom from the command line with atom
  • I opened Atom in Safe Mode from the command line with atom --safe
  • There are no new changes to fetch (for example, running git pull through terminal and then clicking the fetch button doesn't produce an error. Nothing happens which is the expected result.)

Also if I clone the repo using SSH (having set up SSH keys beforehand), the issue does not occur.

Versions

My machine:

$ atom --version
Atom    : 1.58.0
Electron: 9.4.4
Chrome  : 83.0.4103.122
Node    : 12.14.1
$ apm --version
apm  2.6.2
npm  6.14.13
node 12.14.1 x64
atom 1.58.0
python 2.7.16
git 2.28.0

macOS Big Sur 11.6 (20G165) M1 Mac

Other machines:

This issue occurred in a class I was helping teach with 19 students. The issue also occurred on other machines including older non-M1 Macs and Windows machines.

Additional Information

Terminal works

Even when Atom's fetching is throwing this error, fetching or pulling through terminal works fine.

Pushing still works, just not fetching.

Other solutions didn't work

Here's a discussion a similar issue which mentions this issue and a fix: https://github.com/atom/atom/discussions/22668 Their fix didn't work for me (see my comment there).

I've found a few forum posts about this error message, which suggested something is wrong with the connection. The issues persists when tested on two different WiFi networks, and I made sure Firewalls and antivirus software were turned off on my machine.

Issue persists in different Atom installations

Issue persists with Atom installed through Homebrew or from https://atom.io.

Git details

Running git remote -v in the repo gives:

$ git remote -v
origin	https://github.com/HCDigitalScholarship/ticha-xml-tei.git (fetch)
origin	https://github.com/HCDigitalScholarship/ticha-xml-tei.git (push)

(https://github.com/HCDigitalScholarship/ticha-xml-tei is the repo I'm working with. We need Atom git to work because students aren't trained in using the command line.)

qubist avatar Sep 28 '21 19:09 qubist

I'm also having this issue on an intel Mac Mini (2018) with macOS 11.6. I guess I'll just stick to VSC for now.

gabrielf11 avatar Sep 28 '21 20:09 gabrielf11

Same here! Glad its not just me. Platforms both Mac OS (late 2013 and 2020 intel) and on Big Sur.

jadkinsgr avatar Sep 29 '21 01:09 jadkinsgr

Glad this is not just me, but it's a real bummer it's so widespread. How can I debug further or help with a fix?

qubist avatar Sep 29 '21 15:09 qubist

Faced exact same issue, the only solution helped was changing git origin url from HTTP to SSH

d3zorg avatar Oct 20 '21 06:10 d3zorg

I am also affected when I try to pull from a repo.

onshisan avatar Oct 21 '21 23:10 onshisan

Same issue on GNU/Linux (Debian 11)

Animal-Machine avatar Oct 22 '21 16:10 Animal-Machine

I'm having this issue on ElementaryOS

FalkeLH avatar Oct 24 '21 19:10 FalkeLH

Has there been a fix for this? Still having this issue. Running MacOS Monterey 12.0.1

john-ezra avatar Nov 25 '21 03:11 john-ezra

I get the same issue every time I try to fetch from the Git tab. The only way around I have found it works is using git pull from a terminal window. My machine:

% atom --version
Atom    : 1.58.0
Electron: 9.4.4
Chrome  : 83.0.4103.122
Node    : 12.14.1

% apm --version
apm  2.6.2
npm  6.14.13
node 12.14.1 x64
atom 1.58.0
python 3.9.7
git 2.32.0

macOS Monterrey 12.1 Intel chip

MichelleMouse avatar Jan 07 '22 00:01 MichelleMouse

Same issue on macOS Big Sur 11.4.

A temporary workaround for those who are not comfortable with the command line is to install github desktop, then:

  1. File > add local repository
  2. point the directory to the repository folder you use with atom
  3. when you need to pull changes to your atom repository folder, use github desktop instead for the pull

JulesText avatar Jan 20 '22 10:01 JulesText

Same issue :( image

pedromvpg avatar Feb 17 '22 15:02 pedromvpg

Maybe this is caused by using different git versions?

#!/bin/bash
GITPATH1=/Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/bin
GITPATH2=/Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/libexec/git-core

# Homebrew?
[[ -x /usr/bin/git ]]       && GITBINPATH=/usr/bin          # No Homebrew !
[[ -x /usr/local/bin/git ]] && GITBINPATH=/usr/local/bin    # Hombrew on Apple Intel
[[ -x /opt/homebrew/bin ]]  && GITBINPATH=/opt/homebrew/bin # Homebrew on Apple ARM

for GITBIN in $(find ${GITBINPATH} -iname "git*"); do

  [[ -f "${GITPATH1}/$(basename ${GITBIN})" ]] && \
    rm -f "${GITPATH1}/$(basename ${GITBIN})"
  [[ ! -L "${GITPATH1}/$(basename ${GITBIN})" ]] && \
    ln -s ${GITBIN} "${GITPATH1}/$(basename ${GITBIN})"

  [[ -f "${GITPATH2}/$(basename ${GITBIN})" ]] && \
    rm -f "${GITPATH2}/$(basename ${GITBIN})"
  [[ ! -L "${GITPATH2}/$(basename ${GITBIN})" ]] && \
    ln -s ${GITBIN} "${GITPATH2}/$(basename ${GITBIN})"

done

## for private repos
## https://git-annex.branchable.com/forum/error__58___bogus_format_in_GIT__95__CONFIG__95__PARAMETERS/

[[ ! -f "${GITPATH1}/git-show-config-params" ]] && \
cat > ${GITPATH1}/git-show-config-params << EOF
#!/bin/sh
echo "\$GIT_CONFIG_PARAMETERS"
EOF

[[ ! -f "${GITPATH2}/git-show-config-params" ]] && \
cat > ${GITPATH2}/git-show-config-params << EOF
#!/bin/sh
echo "\$GIT_CONFIG_PARAMETERS"
EOF

(Everything is changed within /Applications/Atom.app so you could delete it and copy back the downloaded version)

Using this script after every update of atom should help. Should also work with Apple ARM processors, but hasn't been tested. (MacbookPro Mid 15 -> Intel) I am personally using the homebrew version of git.


best regards realizelol

realizelol avatar Feb 26 '22 02:02 realizelol

Having the same issue.

jeremypass96 avatar May 10 '22 15:05 jeremypass96

Try replace https to http. It works for me

Artem-627 avatar Jul 17 '22 07:07 Artem-627

Try replace https to http. It works for me

I have had success with this too. Update .git/config update [remote "origin"] to use http://<repo_url>/

smdev0925 avatar Jul 29 '22 11:07 smdev0925

+1

mlanciau avatar Sep 13 '22 08:09 mlanciau

+1 on linux (ubuntu mate). https to http workaround works.

Haperth avatar Oct 18 '22 19:10 Haperth

+1 on for the workaround linux (PureOS - Debian based) Is this the recommended way or is there any kind of fix someone is working on?

Smojo avatar Oct 29 '22 08:10 Smojo

I've fixed this problem on my Mac like it was described in https://github.com/atom/atom/discussions/22668. Unfortunately, for some reason, this discussion was deleted. The main idea was to use your system git command instead of packaged with Atom. I've deleted the following files from my system:

/Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/bin/git
/Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/libexec/git-core/git

And after that created a symlink to git:

ln -s /usr/bin/git /Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/libexec/git-core/git
ln -s /usr/bin/git /Applications/Atom.app/Contents/Resources/app.asar.unpacked/node_modules/dugite/git/bin/git

ragumix avatar Oct 29 '22 16:10 ragumix

OK, thx. Seems to be a bit hidden when you use flatpak on debian ^^ /var/lib/flatpak/app/io.atom.Atom/x86_64/stable/cea629ca495e72d577eae4e64bff902ead937564bc67be7fd6d584554be3de36/files/share/atom/resources/app.asar.unpacked/node_modules/dugite/git/<subfolders see above> (will not repeat how to link to you own separate installed git binary)

But if it is the integrated git binary, I think Atom devs can somehow easily fix it. Or am I wrong?

Smojo avatar Oct 29 '22 18:10 Smojo