prestodb/presto · error · PrestoException

CASSANDRA_ERROR

CASSANDRA_ERROR

Error message

Secure connect bundle not found: + bundlePath

What it means

Thrown while building the CQL session in configureEndpoint when the secure connect bundle path configured for the connector does not exist on the filesystem, so the driver cannot establish a cloud-secure connection. The offending input is the configured bundle path (rendered via string concatenation, so the message shows the literal '+ bundlePath' text).

Source

Thrown at presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraClientModule.java:108

            configureTls(sessionBuilder, config);
            return sessionBuilder.build();
        });

        return new NativeCassandraSession(
                connectorId.toString(),
                extraColumnMetadataCodec,
                reopeningSession,
                config.getNoHostAvailableRetryTimeout(),
                config.isCaseSensitiveNameMatchingEnabled(),
                config.getVectorMaxDimensions());
    }

    static void configureEndpoint(CqlSessionBuilder sessionBuilder, CassandraClientConfig config, Logger log)
    {
        if (config.getSecureConnectBundle().isPresent()) {
            File bundlePath = config.getSecureConnectBundle().get();
            if (!bundlePath.exists()) {
                throw new PrestoException(CASSANDRA_ERROR,
                        "Secure connect bundle not found: " + bundlePath);
            }
            log.info("Using secure connect bundle for Astra: %s", bundlePath);
            sessionBuilder.withCloudSecureConnectBundle(bundlePath.toPath());
            if (!config.getContactPoints().isEmpty()) {
                log.warn("Contact points ignored when using secure connect bundle: %s",
                        String.join(", ", config.getContactPoints()));
            }
        }
        else {
            List<String> contactPoints = requireNonNull(config.getContactPoints(), "contactPoints is null");
            checkArgument(!contactPoints.isEmpty(), "empty contactPoints");
            List<InetSocketAddress> contactPointAddresses = contactPoints.stream()
                    .map(host -> new InetSocketAddress(host, config.getNativeProtocolPort()))
                    .collect(Collectors.toList());
            sessionBuilder.addContactPoints(contactPointAddresses);
            String localDc = config.getDcAwareLocalDC();
            if (localDc == null || localDc.trim().isEmpty()) {

View on GitHub (pinned to 55bb57d202)

Solutions

  1. Copy the secure connect bundle to the configured path on all nodes
  2. Fix the cassandra.secure-connect-bundle path in the catalog properties
  3. Remove the property if the cluster is not using cloud secure connectivity
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at presto-cassandra/src/main/java/com/facebook/presto/cassandra/CassandraClientModule.java:108 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/a759ff66600aaea1. Report an issue: GitHub.