Github API 502 error

api, curl, github

Solution

Quoting the reply from GitHub's support with changes in italic:

You're just getting trolled by HTTP and curl.

When you make a PUT request with no body, curl doesn't explicitly set a Content-Length header for that request. However, PUT requests with no Content-Length confuse servers and they respond in weird ways.

Can you please try explicitly setting the Content-Lenght header to 0, or supplying an empty body when making that request (so that curl can set the header for you)? You can accomplish that adding

-d ""

in your command.

Problem

I'm trying to add a user to a Github repository via their API, but I always get a `502 Bad Gateway` error. With curl I send a request like this (<...> replaced by a real owner, repo, etc.): ``` curl -i -H 'Authorization: token xxxxxxxxxx' -XPUT https://api.github.com/repos/<owner>/<repo>/collaborators/<username> ``` I also tried it with this url: ``` curl -i -H 'Authorization: token xxxxxxxxxx' -XPUT https://api.github.com/teams/<id>/members/<username> ``` As token I used a newly created Personal Access Tokens But both times I get this back ``` HTTP/1.0 502 Bad Gateway Cache-Control: no-cache Connection: close Content-Type: text/html <html><body><h1>502 Bad Gateway</h1> The server returned an invalid or incomplete response. </body></html> ``` A `GET` on each URL works fine but a `DELETE` doesn't work either. So maybe it has to do with curl.

Original source