`updated` search filter not applied to some results


#1

I’m trying to use the search API to find pull requests updated during an interval. I’m executing the query

query FindPullRequests($query: String!) {
  search(first: 100, query: $query, type: ISSUE) {
    nodes {
      ... on PullRequest {
        number
        updatedAt
      }
    }
  }
}

with variables

{
  "query": "is:pr repo:facebook/react sort:updated-desc updated:2017-07-27T13:58:04Z..2017-07-27T16:45:07Z"
}

i.e. find up to 100 pull requests in the facebook/react repository that were updated between 2017-07-27T13:58:04Z and 2017-07-27T16:45:07Z, sorted by recency. At the time of writing this returns

{
  "data": {
    "search": {
      "nodes": [
        {
          "number": 10296,
          "updatedAt": "2017-07-27T16:45:07Z"
        },
        {
          "number": 10297,
          "updatedAt": "2018-01-05T16:57:51Z"
        },
        {
          "number": 10308,
          "updatedAt": "2017-07-27T13:58:04Z"
        }
      ]
    }
  }
}

Note that the second pull request has updatedAt equal to 2018-01-05T16:57:51Z which is outside the interval I specified in the query. Is this correct? If I execute the same query through GitHub’s search page I get the same results, so it doesn’t seem like an issue with the GraphQL API itself.

If you look at the pull request in question, it seems like the last comment was posted during the interval, then early this year someone deleted the associated branch. Could this have updated the pull request’s updatedAt property but not refreshed the search index?