Skip to content

Schema check/publish could fail due to GitHub errors/outages #6478

@sentry

Description

@sentry

Sentry Issue: GRAPHQL-HIVE-4KQ

HttpError: We couldn't respond to your request in time. Sorry about that. Please try resubmitting your request and contact us if the problem persists.
  File "../../../../node_modules/.pnpm/@octokit+request@8.3.1/node_modules/@octokit/request/dist-src/fetch-wrapper.js", line 71, in <anonymous>
    if (status >= 400) {
  File "node:internal/process/task_queues", line 105, in process.processTicksAndRejections
  File "../../../../node_modules/.pnpm/@octokit+auth-app@6.0.1/node_modules/@octokit/auth-app/dist-src/hook.js", line 69, in sendRequestWithRetries
    const timeSinceTokenCreationInMs = +/* @__PURE__ */ new Date() - +new Date(createdAt);
  File "../../../../node_modules/.pnpm/@octokit+plugin-retry@6.1.0_@octokit+core@5.2.0/node_modules/@octokit/plugin-retry/dist-src/wrap-request.js", line 4, in requestWithGraphqlErrorHandling
    async function wrapRequest(state, octokit, request, options) {
  File "../../../../node_modules/.pnpm/bottleneck@2.19.5/node_modules/bottleneck/light.js", line 403, in {Job#2}.doExecute
    this.Events.trigger("executing", eventInfo);

In this scenario, actors using the CLI will receive an "Unexpected error". We should probably instead give them more context, so they are not confused. E.g. "Failed to create GitHub status check. GitHub API is unresponsive.

In addition to that, this could lead to a schema check/schema publish succeeding on our end, but then failing due to the request to GitHub failing. We should think if that is okay or whether we want to handle this scenario differently.

Main questions:

  • What information should we share with CLI users if a third-party request (e.g. to GitHub) fails after retries?
  • How should we deal with GitHub check run creation failing after the schema version has been published? We still have partial success in that scenario; however, we tell the user that we are having an unexpected error

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions