apache/cassandra · error · java.lang.IllegalArgumentException
Unknown parameter:
Error message
Unknown parameter:
What it means
nodetool setautorepairconfig rejects any parameter name other than the recognized auto-repair settings (e.g. repair_max_retries, repair_retry_backoff). The command parses a --parameter value pair and throws IllegalArgumentException in the default branch of the switch when the parameter name is unrecognized.
Solutions
- Check the valid parameter names with `nodetool help setautorepairconfig` and use exactly those (e.g. repair_max_retries, repair_retry_backoff).
- Fix any typo in the --parameter argument.
- Verify the parameter exists in the Cassandra version in use; names have changed across releases.
Example fix
// before nodetool setautorepairconfig --parameter repair_retry_backof --value 30s // after nodetool setautorepairconfig --parameter repair_retry_backoff --value 30s
Defensive patterns
Strategy: validation
Validate before calling
const VALID = ['repair_max_retries','repair_retry_backoff'];
if (!VALID.includes(paramType)) throw new Error(`Unknown parameter: ${paramType}; valid: ${VALID.join(', ')}`); Try / catch
try { probe.setAutoRepair(paramType, value); } catch (IllegalArgumentException e) { if (e.getMessage().startsWith('Unknown parameter')) { printHelp(); } else throw e; } Prevention
- List accepted parameters via nodetool help before scripting
- Copy parameter names from the version's official docs, not older versions
When it happens
Trigger: Running `nodetool setautorepairconfig --parameter unknown_param --value 5` or misspelling a parameter name such as 'repair_retry_backof'.
Common situations: Typos in parameter names, copying parameters from older Cassandra versions that renamed the settings, or guessing parameter names from documentation for a different Cassandra version.
Understand the failure class
Background: "Unknown argument", "Invalid value", and "must be one of": invalid CLI argument errors explained — this error's family across 35 libraries.
Related errors
- argument for top must be a positive integer.
- arguments for -F are json,yaml only.
- Can not parse replication factor
- Keyspace [ ] does not exist.
- Number of commands to display has to be at least 1.
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/0b144c7f04ddd2d5.
Report an issue: GitHub.
Appendix: source
Thrown at src/java/org/apache/cassandra/tools/nodetool/SetAutoRepairConfig.java:183
probe.setAutoRepairAllowParallelReplicaRepairAcrossSchedules(repairTypeStr, Boolean.parseBoolean(paramVal));
break;
case "materialized_view_repair_enabled":
probe.setAutoRepairMaterializedViewRepairEnabled(repairTypeStr, Boolean.parseBoolean(paramVal));
break;
case "repair_session_timeout":
probe.setAutoRepairSessionTimeout(repairTypeStr, paramVal);
break;
case "repair_by_keyspace":
probe.setAutoRepairRepairByKeyspace(repairTypeStr, Boolean.parseBoolean(paramVal));
break;
case "repair_max_retries":
probe.setAutoRepairMaxRetriesCount(repairTypeStr, Integer.parseInt(paramVal));
break;
case "repair_retry_backoff":
probe.setAutoRepairRetryBackoff(repairTypeStr, paramVal);
break;
default:
throw new IllegalArgumentException("Unknown parameter: " + paramType);
}
}
}
View on GitHub (pinned to 88fd0f6a0e)