{"record":{"id":"13eadae60d86b49c","repo":"prestodb/presto","slug":"invalid-path-segments-in-url","errorCode":null,"errorMessage":"Invalid path segments in URL: ","messagePattern":"Invalid path segments in URL: ","errorType":"exception","errorClass":"SQLException","httpStatus":null,"severity":"error","filePath":"presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java","lineNumber":409,"sourceCode":"        String path = uri.getPath();\n        if (isNullOrEmpty(uri.getPath()) || path.equals(\"/\")) {\n            return;\n        }\n\n        // remove first slash\n        if (!path.startsWith(\"/\")) {\n            throw new SQLException(\"Path does not start with a slash: \" + uri);\n        }\n        path = path.substring(1);\n\n        List<String> parts = Splitter.on(\"/\").splitToList(path);\n        // remove last item due to a trailing slash\n        if (parts.get(parts.size() - 1).isEmpty()) {\n            parts = parts.subList(0, parts.size() - 1);\n        }\n\n        if (parts.size() > 2) {\n            throw new SQLException(\"Invalid path segments in URL: \" + uri);\n        }\n\n        if (parts.get(0).isEmpty()) {\n            throw new SQLException(\"Catalog name is empty: \" + uri);\n        }\n        catalog = parts.get(0);\n\n        if (parts.size() > 1) {\n            if (parts.get(1).isEmpty()) {\n                throw new SQLException(\"Schema name is empty: \" + uri);\n            }\n            schema = parts.get(1);\n        }\n    }\n\n    private static Properties mergeConnectionProperties(URI uri, Properties driverProperties)\n            throws SQLException\n    {","sourceCodeStart":391,"sourceCodeEnd":427,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java#L391-L427","documentation":"initCatalogAndSchema splits the URL path into at most catalog and schema segments; if more than two '/'-separated segments are present (e.g. extra path elements), this SQLException with the URI is thrown because the driver cannot interpret deeper path hierarchies.","triggerScenarios":"Thrown at presto-jdbc/src/main/java/com/facebook/presto/jdbc/PrestoDriverUri.java:409 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Limit the URL path to /catalog or /catalog/schema and remove extra segments","Move any additional routing info out of the path into query parameters"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"55bb57d202de3b926896fa966c2c4a44c779634e","analyzedAt":"2026-09-04T12:50:26.162Z","contentChangedAt":"2026-09-04T12:50:26.162Z","schemaVersion":2},"datasetVersion":"2026-09-11T21:17:09.523Z"}