atom/github

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

qubist opened this issue ยท 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: atom/atom#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.)

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.

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

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?

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

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

Same issue on GNU/Linux (Debian 11)

I'm having this issue on ElementaryOS

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

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

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

Same issue :(
image

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

Having the same issue.

Try replace https to http. It works for me

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>/

+1

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

Smojo commented

+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?

I've fixed this problem on my Mac like it was described in atom/atom#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
Smojo commented

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?