prestodb/presto · error · SQLException
Error setting up connection
Error message
Error setting up connection
What it means
A generic wrapper in PrestoDriverUri.setupClient: any unexpected RuntimeException during connection-property processing (kerberos setup, token caches, external-auth redirect handler resolution) is rethrown as SQLException("Error setting up connection", e), acting as a catch-all that must be diagnosed via its cause.
Source
Thrown at presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java:333
.orElse(Duration.ofMinutes(2));
KnownTokenCache knownTokenCache = EXTERNAL_AUTHENTICATION_TOKEN_CACHE.getValue(properties).get();
Optional<RedirectHandler> configuredHandler = EXTERNAL_AUTHENTICATION_REDIRECT_HANDLERS.getValue(properties)
.map(CompositeRedirectHandler::new)
.map(RedirectHandler.class::cast);
RedirectHandler redirectHandler = Optional.ofNullable(REDIRECT_HANDLER.get())
.orElseGet(() -> configuredHandler.orElseThrow(() -> new RuntimeException("External authentication redirect handler is not configured")));
ExternalAuthenticator authenticator = new ExternalAuthenticator(redirectHandler, poller, knownTokenCache.create(), timeout);
builder.authenticator(authenticator);
builder.addInterceptor(authenticator);
}
}
catch (ClientException e) {
throw new SQLException(e.getMessage(), e);
}
catch (RuntimeException e) {
throw new SQLException("Error setting up connection", e);
}
}
private static Map<String, String> parseParameters(String query)
throws SQLException
{
Map<String, String> result = new HashMap<>();
if (query != null) {
Iterable<String> queryArgs = QUERY_SPLITTER.split(query);
for (String queryArg : queryArgs) {
List<String> parts = ARG_SPLITTER.splitToList(queryArg);
if (result.put(parts.get(0), parts.get(1)) != null) {
throw new SQLException(format("Connection property '%s' is in URL multiple times", parts.get(0)));
}
}
}
View on GitHub (pinned to 55bb57d202)
Solutions
- Read the cause chain to find the real setup failure (missing required property, bad kerberos config, absent redirect handler)
- Provide all required connection properties for the chosen authentication mode
- Supply a RedirectHandler or set the required external-auth properties when external authentication is enabled
Defensive patterns
Strategy: try-catch
When it happens
Trigger: Thrown at presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java:333 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/ea052a5e239f9b34.
Report an issue: GitHub.