{"record":{"id":"a546960283557752","repo":"prestodb/presto","slug":"unknown-property-at-line-s-s-s-a54696","errorCode":null,"errorMessage":"Unknown property at line %s:%s: %s","messagePattern":"Unknown property at line (.+?):(.+?): (.+?)","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"presto-router/src/main/java/com/facebook/presto/router/RouterUtil.java","lineNumber":66,"sourceCode":"        }\n        catch (IllegalArgumentException e) {\n            handleConfigIllegalArgumentException(e);\n            throw e;\n        }\n\n        return routerSpec;\n    }\n\n    private static void handleConfigIllegalArgumentException(IllegalArgumentException e)\n    {\n        Throwable cause = e.getCause();\n        if (cause instanceof UnrecognizedPropertyException) {\n            UnrecognizedPropertyException ex = (UnrecognizedPropertyException) cause;\n            String message = format(\"Unknown property at line %s:%s: %s\",\n                    ex.getLocation().getLineNr(),\n                    ex.getLocation().getColumnNr(),\n                    ex.getPropertyName());\n            throw new IllegalArgumentException(message, e);\n        }\n        if (cause instanceof JsonMappingException) {\n            // remove the extra \"through reference chain\" message\n            if (cause.getCause() != null) {\n                cause = cause.getCause();\n            }\n            throw new IllegalArgumentException(cause.getMessage(), e);\n        }\n    }\n}\n","sourceCodeStart":48,"sourceCodeEnd":77,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-router/src/main/java/com/facebook/presto/router/RouterUtil.java#L48-L77","documentation":"Thrown by the Presto router while parsing router-config.properties via Jackson. When the JSON/properties config contains a property name the RouterConfiguration class does not recognize, Jackson's UnrecognizedPropertyException is rethrown as an IllegalArgumentException with the file line/column and the offending property name. It is a fail-fast config validation so typos in router config are caught at startup.","triggerScenarios":"Calling parseRouterConfig on a config file containing a key that has no matching setter/field on the router configuration class (e.g. a misspelled 'http-server.http.port' or a property removed in a newer Presto version).","commonSituations":"Typo'd property names in router-config.properties; copying properties from coordinator/worker config into the router config; upgrading Presto and using deprecated/renamed router properties.","solutions":["Remove or correct the unknown property named in the message at the reported line of the router config file","Check the RouterConfiguration class (and its parent classes) for the exact accepted property names","If a property was removed/renamed in your Presto version, migrate to the new name"],"exampleFix":"// before (router-config.properties)\nhttp-server.http.portt=8080\n// after\nhttp-server.http.port=8080","handlingStrategy":"validation","validationCode":"Set<String> allowed = Set.of(\"router.scheduler\", \"http-server.http.port\");\nfor (String line : Files.readAllLines(configPath)) {\n    String key = line.split(\"[=]\", 2)[0].trim();\n    if (!key.isEmpty() && !key.startsWith(\"#\") && !allowed.contains(key))\n        throw new IllegalArgumentException(\"Unknown router property: \" + key);\n}","typeGuard":"boolean isKnownRouterProperty(String key) {\n    try {\n        new RouterConfiguration().setProperty(key, \"\");\n        return true;\n    } catch (UnsupportedOperationException e) {\n        return false;\n    }\n}","tryCatchPattern":"try {\n    RouterConfig config = parseRouterConfig(configFile);\n} catch (IllegalArgumentException e) {\n    LOG.error(\"Bad router config: %s\", e.getMessage());\n    throw new ExitCodeException(1, e.getMessage());\n}","preventionTips":["Lint router-config.properties against RouterConfiguration's accepted property names in CI","Never copy coordinator/worker properties into the router config","After upgrading Presto, diff your router config against the new version's documented properties"],"tags":["router","config","jackson","startup"],"backgroundTag":"unknown-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"}