prestodb/presto · error · PrestoException
INVALID_ARGUMENTS
INVALID_ARGUMENTS
Error message
Elasticsearch query for '%s' is not base32-encoded correctly
What it means
Table-handle parsing guard: the portion of the table name after ':' (the passthrough query) is not valid base32 as required by the connector's naming convention, so it cannot be decoded into a query string.
Source
Thrown at presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchMetadata.java:135
@Override
public ElasticsearchTableHandle getTableHandle(ConnectorSession session, SchemaTableName tableName)
{
requireNonNull(tableName, "tableName is null");
if (tableName.getSchemaName().equals(schemaName)) {
String[] parts = tableName.getTableName().split(":", 2);
String table = parts[0];
Optional<String> query = Optional.empty();
ElasticsearchTableHandle.Type type = SCAN;
if (parts.length == 2) {
if (table.endsWith(PASSTHROUGH_QUERY_SUFFIX)) {
table = table.substring(0, table.length() - PASSTHROUGH_QUERY_SUFFIX.length());
byte[] decoded;
try {
decoded = BaseEncoding.base32().decode(parts[1].toUpperCase(ENGLISH));
}
catch (IllegalArgumentException e) {
throw new PrestoException(INVALID_ARGUMENTS, format("Elasticsearch query for '%s' is not base32-encoded correctly", table), e);
}
String queryJson = new String(decoded, UTF_8);
try {
// Ensure this is valid json
JSON_PARSER.readTree(queryJson);
}
catch (JsonProcessingException e) {
throw new PrestoException(INVALID_ARGUMENTS, format("Elasticsearch query for '%s' is not valid JSON", table), e);
}
query = Optional.of(queryJson);
type = QUERY;
}
else {
query = Optional.of(parts[1]);
}
}View on GitHub (pinned to 55bb57d202)
Solutions
- Re-generate the passthrough query table name using base32 encoding
- Ensure the query text was base32-encoded without padding/character loss
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at presto-elasticsearch/src/main/java/com/facebook/presto/elasticsearch/ElasticsearchMetadata.java:135 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/d7434cbce4ff1289.
Report an issue: GitHub.