Skip to content
This repository has been archived by the owner on Dec 15, 2022. It is now read-only.

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

Open
1 task
qubist opened this issue Sep 28, 2021 · 20 comments · May be fixed by #2743
Open
1 task

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

qubist opened this issue Sep 28, 2021 · 20 comments · May be fixed by #2743

Comments

@qubist
Copy link

qubist commented Sep 28, 2021

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.)

@gabrielf11
Copy link

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.

@jadkinsgr
Copy link

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

@qubist
Copy link
Author

qubist commented Sep 29, 2021

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?

@d3zorg
Copy link

d3zorg commented Oct 20, 2021

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

@onshisan
Copy link

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

@Animal-Machine
Copy link

Same issue on GNU/Linux (Debian 11)

@FalkeLH
Copy link

FalkeLH commented Oct 24, 2021

I'm having this issue on ElementaryOS

@john-ezra
Copy link

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

@MichelleMouse
Copy link

MichelleMouse commented Jan 7, 2022

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

@JulesText
Copy link

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

@pedromvpg
Copy link

Same issue :(
image

@realizelol
Copy link

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

@alexrudd2 alexrudd2 linked a pull request Mar 10, 2022 that will close this issue
@jeremypass96
Copy link

Having the same issue.

@Artem-627
Copy link

Try replace https to http. It works for me

@shanemarsh28
Copy link

shanemarsh28 commented Jul 29, 2022

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

@mlanciau
Copy link

+1

@Haperth
Copy link

Haperth commented Oct 18, 2022

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

@Smojo
Copy link

Smojo commented Oct 29, 2022

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

@ragumix
Copy link

ragumix commented Oct 29, 2022

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
Copy link

Smojo commented Oct 29, 2022

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?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.