githubv4 icon indicating copy to clipboard operation
githubv4 copied to clipboard

Parse 502 status code response as a GraphQL response.

Open dmitshur opened this issue 7 years ago • 2 comments

As reported by @cjwagner in https://github.com/shurcooL/graphql/issues/29#issuecomment-424103540 and recently reproduced by me, GitHub GraphQL API v4 can return a response with status code 502 that includes a valid GraphQL response:

{
    "data":"null",
    "errors":[
        {
            "message":"Something went wrong while executing your query. This may be the result of a timeout, or it could be a GitHub bug. Please include `8FF2:721B:31D84D5:6EF58BD:5BCF3079` when reporting this issue."
        }
    ]
}

(I'm a little surprised and concerned that data field is a string "null" rather than a JSON null value. It's still valid JSON, but... According to GraphQL spec, "If an error was encountered during the execution that prevented a valid response, the data entry in the response should be null.")

We can parse it as such, instead of returning a generic "non-200 OK status code" error:

image

This may depend on shurcooL/graphql#5 being resolved, or maybe there's a shorter path to getting this done.

dmitshur avatar Oct 24 '18 01:10 dmitshur

Another use case is for detecting when a rate limit is hit. According to https://github.com/shurcooL/githubv4/issues/57#issue-569538004, GitHub returns HTTP 429 status code in those cases.

dmitshur avatar Feb 23 '20 23:02 dmitshur

According to #57 (comment), GitHub returns HTTP 429 status code in those cases.

I actually don't know, it's just what I expected to happen.

MichaelMure avatar Feb 29 '20 09:02 MichaelMure