{"record":{"id":"8f7ba6265ea6da24","repo":"apache/cassandra","slug":"s-is-expecting-d-argument-values-getting-d-ins","errorCode":null,"errorMessage":"%s is expecting %d argument values. Getting %d instead.","messagePattern":"(.+?) is expecting (.+?) argument values\\. Getting (.+?) instead\\.","errorType":"console","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/tools/nodetool/GuardrailsConfigCommand.java","lineNumber":283,"sourceCode":"            if (parameterTypes.length == 1 && parameterTypes[0] == Set.class)\n            {\n                if (args.size() > 2)\n                {\n                    String guardrail = args.get(0);\n                    // replace multiple arguments with one which is separated by a single comma\n                    String collectedArguments = String.join(\",\", args.subList(1, args.size()));\n                    args.clear();\n                    args.add(guardrail);\n                    args.add(collectedArguments);\n                }\n            }\n        }\n\n        private void validateArguments(Method setter, String setterName, List<String> args)\n        {\n            if (args.size() != setter.getParameterCount() + 1)\n            {\n                throw new IllegalStateException(format(\"%s is expecting %d argument values. Getting %d instead.\",\n                                                       setterName,\n                                                       setter.getParameterCount(),\n                                                       args.size() - 1));\n            }\n        }\n\n        private Object[] prepareArguments(List<String> args, Method method)\n        {\n            Class<?>[] parameterTypes = method.getParameterTypes();\n            Object[] arguments = new Object[args.size()];\n\n            for (int i = 0; i < args.size(); i++)\n                arguments[i] = castType(parameterTypes[i], args.get(i));\n\n            if (method.getName().endsWith(\"Threshold\"))\n            {\n                List<Object> thresholdArgs = Arrays.asList(arguments);\n                Collections.reverse(thresholdArgs);","sourceCodeStart":265,"sourceCodeEnd":301,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/tools/nodetool/GuardrailsConfigCommand.java#L265-L301","documentation":"Before invoking a guardrail setter, the command validates that the number of provided value arguments equals the setter's parameter count; a mismatch throws IllegalStateException '<setter> is expecting <n> argument values. Getting <m> instead.'","triggerScenarios":"Running `nodetool guardrailsconfig set <name> v1 v2` for a single-parameter setter, or omitting values for a multi-parameter setter (e.g. map/two-threshold guardrails needing 2+ values).","commonSituations":"Two-parameter guardrails like minimum/maximum thresholds given only one value; accidentally pasting extra values; map-valued guardrails given one key without a value.","solutions":["Count the setter's expected parameters and supply exactly that many values after the guardrail name.","Check `nodetool help guardrails-config` or docs for the guardrail's arity.","For map/set guardrails, provide key and value pairs as separate arguments."],"exampleFix":"// before\nnodetool guardrailsconfig set partition_size_guardrail_warn 10MB\n// after\nnodetool guardrailsconfig set partition_size_guardrail_warn 10MB 100MB","handlingStrategy":"validation","validationCode":"ARITY = {'read_consistency_level': 1, 'partition_size_guardrail_warn': 2}\ndef validate_arity(name, values):\n    expected = ARITY.get(name)\n    if expected is not None and len(values) != expected:\n        raise SystemExit(f'{name} expects {expected} value(s), got {len(values)}')","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Look up each guardrail's parameter count before calling set.","Provide multi-parameter guardrail values as separate arguments."],"tags":["cli","nodetool","guardrails","argument-count"],"backgroundTag":"invalid-argument-count","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-14T16:17:12.679Z"}