As a proud GitKraken(GK) ambassador, I use GK to help learning developers discover and work with git. A few months ago I was working with a client to organize their code into GitHub using GitKraken. Everything was going smoothly, but we started running into SSH errors when trying to pull or pull. We saw "failed to connect to github.com: Invalid argument." We also had "failed to start SSH session: failed getting banner".
This was rather puzzling, as not even an hour before that everything was working fine.
There are a lot of different articles out there suggesting fixes for this specific issue including checking the firewall or using https instead of ssh, but everything had been fine until just that moment. We checked to make sure GitHub wasn't running into one of their occasional issues. We verified SSH keys. We recreated SSH keys.
The repos were there, could be accessed by others on the team, but this one individual. Nothing had changed on their system during this time except for us making changes to the code in the project they were working on.
After some deliberation with other amazing GitKraken Ambassadors, we figured out that the GK install was probably corrupt, so we fully deleted and reinstalled it on that team member's system. Everything worked, and we carried on.
Then, two weeks ago, we ran into the same issue. I had a hard time believing that this instance had corrupted as well, even though it was the same client's team member. Again, I reached out to some fellow GK Ambassadors to discuss the issue. This time however, I decided to dig a bit deeper.
Usually when running into an error when working with an application, the tendency is to land the error squarely on the shoulders of the app failing in some way. Considering this was the second time for this particular client, I figured I needed to look deeper.
Obviously the first thing was to look at the status page for GitHub as there have been times when GitHub has various systems attacked. It is a rather large target after all. Everything on their status page reported as normal, and again everyone else on the team could push/pull/create/clone/etc.
I then had them see if they could ping github.com from their dev environment. That is where we found the problem. For some reason their system could not resolve the hostname github.com. I then had them test to see if they could ping google.com. Same problem.
Considering we were having a virtual meeting that seemed odd as they were connected to the internet, but it seemed like their DNS servers were having issues. We tried to fix that by changing their DNS Servers to OpenDNS.
Once they did that, they vanished off the virtual call, and I felt a moment of concern. Changing DNS servers should have that kind of impact. After a few minutes they returned to the call.
It turned out that their ISP had issues with their DNS servers and forced a reconnect on their router once those DNS servers were fixed. After that, we could ping successfully and everything we asked GitKraken to do worked as expected.
In the world of IT, there are many layers at work (think OSI Model) to ensure connectivity. If you happen to run into any of the errors above in GitKraken, before you make any changes, check your connectivity first. Sometimes it may be your company firewall. Sometimes it may be your ISP. It's not always the fault of an app.