What happened:
We're often seeing random Athena errors like this one:
error querying the database: GENERIC_INTERNAL_ERROR: Cannot invoke "io.trino.execution.SqlTaskExecution$DriverSplitRunnerFactory.enqueueSplits(java.util.Set, boolean)" because "factory" is null
Those errors are impossible to predict and apparently also not avoidable. However, when such an error happens, it often comes back with a 4xx error code from the /api/ds/query endpoint. We are using this endpoint for some automated tests and kind of rely on the response code to decide whether to retry the test. Retrying a something that really is a client error (e.g. query with syntax error) doesn't really make sense. So it would be nice to be able to distinguish between real client errors and internal errors.
What you expected to happen:
I'd expect internal Athena errors to be returned with a 5xx response code for the /query endpoint. 4xx response code makes sense for real client errors like sending a query with a syntax error.
How to reproduce it (as minimally and precisely as possible):
Not really reproducible in a reliable way
Environment:
- Grafana version: 10.2.3
- Plugin version: 2.14.1
What happened:
We're often seeing random Athena errors like this one:
Those errors are impossible to predict and apparently also not avoidable. However, when such an error happens, it often comes back with a 4xx error code from the
/api/ds/queryendpoint. We are using this endpoint for some automated tests and kind of rely on the response code to decide whether to retry the test. Retrying a something that really is a client error (e.g. query with syntax error) doesn't really make sense. So it would be nice to be able to distinguish between real client errors and internal errors.What you expected to happen:
I'd expect internal Athena errors to be returned with a 5xx response code for the
/queryendpoint. 4xx response code makes sense for real client errors like sending a query with a syntax error.How to reproduce it (as minimally and precisely as possible):
Not really reproducible in a reliable way
Environment: