{"record":{"id":"372e20548ea2cd74","repo":"prestodb/presto","slug":"unknown-property-at-line-s-s-s-372e20","errorCode":null,"errorMessage":"Unknown property at line %s:%s: %s","messagePattern":"Unknown property at line (.+?):(.+?): (.+?)","errorType":"validation","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"presto-resource-group-managers/src/main/java/com/facebook/presto/resourceGroups/FileResourceGroupConfigurationManager.java","lineNumber":73,"sourceCode":"        super(memoryPoolManager);\n        requireNonNull(config, \"config is null\");\n\n        ManagerSpec managerSpec;\n        try {\n            managerSpec = CODEC.fromJson(Files.readAllBytes(Paths.get(config.getConfigFile())));\n        }\n        catch (IOException e) {\n            throw new UncheckedIOException(e);\n        }\n        catch (IllegalArgumentException e) {\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            throw e;\n        }\n\n        this.rootGroups = managerSpec.getRootGroups();\n        this.cpuQuotaPeriod = managerSpec.getCpuQuotaPeriod();\n        validateRootGroups(managerSpec);\n        this.selectors = buildSelectors(managerSpec);\n    }\n\n    @Override","sourceCodeStart":55,"sourceCodeEnd":91,"githubUrl":"https://github.com/prestodb/presto/blob/55bb57d202de3b926896fa966c2c4a44c779634e/presto-resource-group-managers/src/main/java/com/facebook/presto/resourceGroups/FileResourceGroupConfigurationManager.java#L55-L91","documentation":"FileResourceGroupConfigurationManager catches Jackson's UnrecognizedPropertyException while deserializing resource-groups.json and rethrows it as IllegalArgumentException with line/column and the offending property name, so typos in JSON keys fail loudly instead of being silently ignored.","triggerScenarios":"resource-groups.json (or selectors file) contains a property not defined on the target spec class, e.g. 'maxQueued' instead of 'maxQueuedQueries'; config loaded at manager construction.","commonSituations":"Typos in JSON keys; using properties from a different Presto version or a different plugin's schema; copy-pasting config from documentation of an incompatible release.","solutions":["Fix or remove the property named in the error at the reported line/column","Check the exact property names supported by ResourceGroupSpec/SelectorSpec for your Presto version","Validate the JSON against the current schema before deploying"],"exampleFix":"// before (resource-groups.json)\n\"maxQueued\": 100\n// after\n\"maxQueuedQueries\": 100","handlingStrategy":"validation","validationCode":"// Validate JSON keys before loading\nJsonNode root = mapper.readTree(configJson);\nSet<String> allowed = Set.of(\"rootGroups\", \"selectors\", \"subgroups\", \"maxQueuedQueries\", \"softMemoryLimit\", \"hardConcurrencyLimit\", \"maxRunning\", \"schedulingPolicy\", \"schedulingWeight\", \"jmxExport\", \"workersPerQueryLimit\");\nroot.fieldNames().forEachRemaining(f -> { if (!allowed.contains(f)) throw new IllegalArgumentException(\"Unknown property: \" + f); });","typeGuard":null,"tryCatchPattern":"try { new FileResourceGroupConfigurationManager(...); } catch (IllegalArgumentException e) { log.error(\"Bad resource group config: \" + e.getMessage()); }","preventionTips":["JSON-schema-validate resource-groups.json in CI against your Presto version","Copy property names only from official docs for the exact release","Fail config pipeline on unknown keys (do not disable FAIL_ON_UNKNOWN_PROPERTIES)"],"tags":["presto","resource-groups","json","configuration"],"backgroundTag":"unknown-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"}