{"record":{"id":"73467d8a5d8b9f7d","repo":"apache/cassandra","slug":"no-arguments","errorCode":null,"errorMessage":"No arguments.","messagePattern":"No arguments\\.","errorType":"console","errorClass":"IllegalStateException","httpStatus":null,"severity":"error","filePath":"src/java/org/apache/cassandra/tools/nodetool/GuardrailsConfigCommand.java","lineNumber":197,"sourceCode":"                        \"For thresholds accepting integers, the reset value is -1.\")\n        private List<String> args = new ArrayList<>();\n\n        @Parameters(index = \"0\", arity = \"0..1\")\n        private String setterName;\n\n        @Parameters(index = \"1..*\", arity = \"0..*\", description = \"Arguments for the setter. For flags, possible values are 'true' or 'false'. \" +\n                \"For thresholds, two values are expected, first for failure, second for warning. \" +\n                \"For values, enumeration of values expected or one value where multiple items are separated by comma. \" +\n                \"Setting for thresholds accepting strings and value guardrails are reset by specifying 'null' or '[]' value. \" +\n                \"For thresholds accepting integers, the reset value is -1.\")\n        private List<String> setterArgs = new ArrayList<>();\n\n        @Override\n        public void execute(NodeProbe probe)\n        {\n            args = CommandUtils.concatArgs(setterName, setterArgs);\n            if (args.isEmpty())\n                throw new IllegalStateException(\"No arguments.\");\n\n            String snakeCaseName = args.get(0);\n\n            Method setter = getAllSetters(probe).entrySet().stream()\n                                                .findFirst()\n                                                .map(o -> o.getValue().get(0))\n                                                .orElseThrow(() -> new IllegalStateException(format(\"Guardrail %s not found.\", snakeCaseName)));\n\n            sanitizeArguments(setter, args);\n            validateArguments(setter, snakeCaseName, args);\n\n            List<String> methodArgs = args.subList(1, args.size());\n            try\n            {\n                setter.invoke(probe.getGuardrailsMBean(), prepareArguments(methodArgs, setter));\n            }\n            catch (Exception ex)\n            {","sourceCodeStart":179,"sourceCodeEnd":215,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/src/java/org/apache/cassandra/tools/nodetool/GuardrailsConfigCommand.java#L179-L215","documentation":"IllegalArgumentException from the GuardrailsConfigCommand setter subcommand when execute is invoked without any arguments: neither a setter/guardrail name nor its arguments were provided, so there is nothing to configure and the command aborts.","triggerScenarios":"Running `nodetool guardrailsconfig set` with no positional arguments at all.","commonSituations":"Forgetting the guardrail name and value when setting; scripts with empty/unexpanded variables losing their arguments.","solutions":["Supply the guardrail setter name and the value(s): `nodetool guardrailsconfig set <guardrail> <value>...`.","Quote/verify script variables so the arguments aren't dropped.","Run `nodetool help guardrails-config` for the exact usage."],"exampleFix":"// before\nnodetool guardrailsconfig set\n// after\nnodetool guardrailsconfig set read_consistency_level EACH_QUORUM","handlingStrategy":"validation","validationCode":"def validate_set_args(argv):\n    if len(argv) < 1:\n        raise SystemExit('Usage: nodetool guardrailsconfig set <guardrail> <value>...')","typeGuard":null,"tryCatchPattern":"try:\n    run(['nodetool','guardrailsconfig','set']+args)\nexcept subprocess.CalledProcessError:\n    sys.exit('guardrails set requires a guardrail name and value(s)')","preventionTips":["Check that script variables expand to non-empty values.","Echo the composed command before running it in automation."],"tags":["cli","nodetool","guardrails","missing-argument"],"backgroundTag":"missing-required-argument","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"}