chdsbd / kodiak

🔮 A bot to automatically update and merge GitHub PRs

Home Page:https://kodiakhq.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

better handle 502 errors when merging PRs

chdsbd opened this issue · comments

When Kodiak starts merging a PR, it enters a loop, polling until the PR is ready to merge. If Kodiak makes a GitHub API request and encounters an error, it will eject from this loop, ignoring the PR and moving on to the next PR in queue.

This is problematic behavior as it can trigger extra updates to PRs. We should gracefully retry on recoverable errors.

Here's where we check for an error:

try:
res.raise_for_status()
except http.HTTPError:
log.warning("github api request error", res=res, exc_info=True)
return None

We should audit all of our API requests to ensure we gracefully handle errors.

Why do we raise ApiCallException for some errors but not others?

# we raise an exception to retry this request.
raise ApiCallException(
method="pull_request/update_branch",
http_status_code=res.status_code,
response=res.content,
)