Skip to content

Validate that Error Statuses from AWS are not obfuscated #324

@skuzzle

Description

@skuzzle

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

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions