{"record":{"id":"736c7f8a508ae677","repo":"prestodb/presto","slug":"connection-url-is-required-but-was-not-provided","errorCode":null,"errorMessage":"connection-url is required but was not provided","messagePattern":"connection-url is required but was not provided","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"critical","filePath":"presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/BaseJdbcConfig.java","lineNumber":194,"sourceCode":"    @Config(\"case-sensitive-name-matching\")\n    @ConfigDescription(\"Enable case-sensitive matching of schema, table names across the connector. \" +\n            \"When disabled, names are matched case-insensitively using lowercase normalization.\")\n    public BaseJdbcConfig setCaseSensitiveNameMatching(boolean caseSensitiveNameMatchingEnabled)\n    {\n        this.caseSensitiveNameMatchingEnabled = caseSensitiveNameMatchingEnabled;\n        return this;\n    }\n\n    @PostConstruct\n    public void validateConfig()\n    {\n        if (isCaseInsensitiveNameMatching() && isCaseSensitiveNameMatching()) {\n            throw new ConfigurationException(ImmutableList.of(new Message(\"Only one of 'case-insensitive-name-matching=true' or 'case-sensitive-name-matching=true' can be set. \" +\n                    \"These options are mutually exclusive.\")));\n        }\n\n        if (connectionUrl == null) {\n            throw new ConfigurationException(ImmutableList.of(new Message(\"connection-url is required but was not provided\")));\n        }\n    }\n\n    public int getFetchSize()\n    {\n        return fetchSize;\n    }\n\n    @Config(\"jdbc-fetch-size\")\n    @ConfigDescription(\"Number of rows to fetch from the database at a time\")\n    public BaseJdbcConfig setFetchSize(int fetchSize)\n    {\n        this.fetchSize = fetchSize;\n        return this;\n    }\n}\n","sourceCodeStart":176,"sourceCodeEnd":211,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-base-jdbc/src/main/java/com/facebook/presto/plugin/jdbc/BaseJdbcConfig.java#L176-L211","documentation":"BaseJdbcConfig.validateConfig() requires connection-url; if it is null after configuration binding, it throws ConfigurationException with \"connection-url is required but was not provided\" when the catalog is loaded.","triggerScenarios":"Connector/catalog properties file missing the connection-url property (or misspelled key), so BaseJdbcConfig binds with connectionUrl == null and @PostConstruct validation fails at catalog deployment.","commonSituations":"Fresh catalog setup forgetting the required property; typo like connection_url; empty properties file after a bad deploy; catalog added without its properties file.","solutions":["Add connection-url=jdbc:<driver>://host:port/db to the catalog properties file","Check the property key spelling is exactly connection-url","Ensure the properties file exists in the catalog directory on all coordinator/worker nodes and restart Presto"],"exampleFix":"// before (catalog properties)\nconnector.name=postgresql\n// after\nconnector.name=postgresql\nconnection-url=jdbc:postgresql://dbhost:5432/mydb","handlingStrategy":"validation","validationCode":"// Ensure connection-url exists before deploying a catalog\nProperties props = loadCatalogProperties(catalogFile);\nString url = props.getProperty(\"connection-url\");\nif (url == null || url.isBlank()) throw new IllegalArgumentException(catalogFile + \" is missing required connection-url\");\nif (!url.startsWith(\"jdbc:\")) throw new IllegalArgumentException(\"connection-url must be a valid JDBC URL\");","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Start every JDBC catalog file with connector.name and connection-url","Spell the key exactly as connection-url (hyphen, not underscore)","Verify the properties file is present on all nodes and re-check after config-management changes"],"tags":["configuration","jdbc","catalog","missing-property"],"backgroundTag":"missing-config-property","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"}