prestodb/presto · warning · PrestoException
NOT_SUPPORTED
NOT_SUPPORTED
Error message
Accumulo does not support renaming tables to different namespaces (schemas)
What it means
The same InitializingConfigurationManager placeholder also throws SERVER_STARTING_UP from match(SelectionCriteria): while the real resource group configuration is unavailable, no selector can match, so every query submission during initialization is rejected as transient.
Source
Thrown at presto-accumulo/src/main/java/com/facebook/presto/accumulo/AccumuloClient.java:470
if (table.isIndexed()) {
String indexTableName = Indexer.getIndexTableName(tableName);
if (tableManager.exists(indexTableName)) {
tableManager.deleteAccumuloTable(indexTableName);
}
String metricsTableName = Indexer.getMetricsTableName(tableName);
if (tableManager.exists(metricsTableName)) {
tableManager.deleteAccumuloTable(metricsTableName);
}
}
}
}
public void renameTable(SchemaTableName oldName, SchemaTableName newName)
{
if (!oldName.getSchemaName().equals(newName.getSchemaName())) {
throw new PrestoException(NOT_SUPPORTED, "Accumulo does not support renaming tables to different namespaces (schemas)");
}
AccumuloTable oldTable = getTable(oldName);
if (oldTable == null) {
throw new TableNotFoundException(oldName);
}
AccumuloTable newTable = new AccumuloTable(
oldTable.getSchema(),
newName.getTableName(),
oldTable.getColumns(),
oldTable.getRowId(),
oldTable.isExternal(),
oldTable.getSerializerClassName(),
oldTable.getScanAuthorizations());
// Validate table existence
if (!tableManager.exists(oldTable.getFullTableName())) {View on GitHub (pinned to 55bb57d202)
Solutions
- Retry query submission with backoff until initialization completes.
- Gate submission on coordinator readiness signals rather than port availability.
- Prefer a fast local resource-groups configuration file if the remote source is the bottleneck.
- Check coordinator logs for errors in the config manager load — if it never completes, fix the underlying config loading failure.
Example fix
// before
ResourceGroupId gid = manager.match(criteria).get().getResourceGroupId();
// after
Optional<SelectionContext<Void>> m = manager.match(criteria);
if (!m.isPresent() && serverInitializing) {
retryWithBackoff(() -> manager.match(criteria));
} Defensive patterns
Strategy: retry
Validate before calling
// wait for configuration manager to be installed
while (!internalResourceGroupManager.isLoaded()) { // not InitializingConfigurationManager
Thread.sleep(1000);
} Try / catch
try {
Optional<SelectionContext<Void>> match = manager.match(criteria);
} catch (PrestoException e) {
if (e.getErrorCode().getName().contains("SERVER_STARTING_UP")) {
retryWithBackoff(() -> manager.match(criteria));
} else {
throw e;
}
} Prevention
- Delay query routing until the coordinator reports configuration loaded.
- Use failover-aware clients that retry SERVER_STARTING_UP transparently.
- Investigate config-source latency if the startup window is routinely hit.
When it happens
Trigger: Query submission during coordinator startup/reload where InternalResourceGroupManager.match is invoked before the real ResourceGroupConfigurationManager is installed.
Common situations: Clients or orchestrators racing coordinator startup; failover tests hitting the coordinator the moment the port opens; heavy config backends making initialization slow enough to surface the window in normal operations.
Understand the failure class
Background: Presto NOT_SUPPORTED error: what "not supported" means and how to fix it — this error's family across 3 libraries.
Related errors
- ACCUMULO_TABLE_EXISTS
- Unknown cluster Ttl provider manager
- Unknown Node Ttl Fetcher Manager:
- Selector refers to nonexistent group: %s
- Selector specifies an invalid query type: %s
AI-assisted analysis of prestodb/presto@55bb57d202 (2026-09-04).
Data as JSON: /api/errors/81f5ec2108d7f3d9.
Report an issue: GitHub.