bitauth/chaingraph

Hasura: friendlier error messages on `statement_timeout`

Opened this issue · 0 comments

Currently, for public instances which can't use an allow-list (to allow other developers to write their own queries for hackathons and smaller projects, like https://demo.chaingraph.cash) the most definitive way to prevent excessive resource usage by expensive queries is to run Hasura under a Postgres user with a reasonable statement_timeout.

When a query fails due to statement_timeout, the Postgres error message reads something like canceling statement due to statement timeout.

Unfortunately, the error message ultimately returned by Hasura is not very helpful:

{
  "errors": [
    {
      "extensions": {
        "path": "$",
        "code": "unexpected"
      },
      "message": "database query error"
    }
  ]
}

It would be much nicer if Hasura returned a more meaningful error message, e.g.:

{
  "errors": [
    {
      "message": "Request cancelled due to excessive resource usage. Please limit your query and try again."
    }
  ]
}

This issue will remain open to track the feature request on Hasura's issue tracker: hasura/graphql-engine#7839