Commit d2ddfc17 authored by Marek Veselý's avatar Marek Veselý
Browse files

Merge branch '1070-add-a-handler-for-nginx-timeout-errors' into 'main'

Resolve "Add a handler for nginx timeout errors"

Closes #1070

See merge request inject/frontend!909
parents 42e279da cd643292
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -10,23 +10,31 @@ export interface CustomOperationContext extends OperationContext {
  errorHandled?: boolean
}

const getCleanMessage = (message: string) => {
  const cleanMessage = message.replace('[GraphQL] ', '')
  if (cleanMessage.includes('504')) {
    return 'The server was unable to process the request in time. Please try again later.'
  }
  return cleanMessage
}

export const constructClient = () =>
  new Client({
    url: httpGraphql(window.VITE_HTTPS_HOST ?? 'localhost:8000'),
    exchanges: [
      mapExchange({
        onError(error, op) {
          error.message = error.message.replace('[GraphQL] ', '')
          const message = getCleanMessage(error.message)
          if (!(op.context as CustomOperationContext)?.errorHandled) {
            console.error(
              `GraphQL error: ${error.message}`,
              `GraphQL error: ${message}`,
              JSON.stringify({
                _error: error,
                _operation: op,
              })
            )
            notify(
              `Error: ${error.message}`,
              `Error: ${message}`,
              JSON.stringify({
                _error: error,
                _operation: op,