apache/cassandra · error · ConfigurationException
entire_sstable_inter_dc_stream_throughput_outbound
Error message
entire_sstable_inter_dc_stream_throughput_outbound: %s is too large
What it means
Guard on the cross-datacenter entire-sstable streaming throttle: if entire_sstable_inter_dc_stream_throughput_outbound converts to >= Integer.MAX_VALUE mebibytes per second, LoaderOptions.Builder throws ConfigurationException 'entire_sstable_inter_dc_stream_throughput_outbound: <value> is too large'. See tools/sstableloader/src/org/apache/cassandra/tools/LoaderOptions.java:513.
Solutions
- Set entire_sstable_inter_dc_stream_throughput_outbound to a realistic rate or remove/null it in cassandra.yaml
- Audit the whole throughput block of cassandra.yaml for unit mistakes
- Point sstableloader at the correct --conf-path
Example fix
// before (cassandra.yaml) entire_sstable_inter_dc_stream_throughput_outbound: 123456789012MiB/s // after entire_sstable_inter_dc_stream_throughput_outbound: 50MiB/s
Defensive patterns
Strategy: validation
Validate before calling
// pre-check config // grep entire_sstable_inter_dc_stream_throughput_outbound $CONF/cassandra.yaml // value should be a sane MiB/s rate or 0/null to disable
Try / catch
try {
options = new LoaderOptions.Builder(dirs, args).build();
} catch (ConfigurationException e) {
if (e.getMessage().startsWith("entire_sstable_inter_dc_stream_throughput_outbound")) {
// fix the yaml value and retry
}
throw e;
} Prevention
- Keep inter-DC entire-sstable throttle values realistic and unit-correct
- Audit all four stream-throughput keys in cassandra.yaml together
- Don't paste values between differently-typed throughput fields
- Pin a known-good config via --conf-path
When it happens
Trigger: sstableloader loading a cassandra.yaml where entire_sstable_inter_dc_stream_throughput_outbound is set above the int bound in MiB/s — a config value error detected during option building.
Common situations: Typo'd or machine-generated extreme values in cassandra.yaml; unit confusion (Mbps vs MiB/s) when migrating configs across Cassandra versions.
Understand the failure class
Background: "Invalid value" and "allowed values are" config errors: what your library rejected and how to fix it — this error's family across 41 libraries.
Related errors
- entire_sstable_stream_throughput_outbound
- inter_dc_stream_throughput_outbound
- stream_throughput_outbound
- repair_session_max_tree_depth has been deprecated and…
- A repair_session_space of
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/4bec84c447af4e5c.
Report an issue: GitHub.
Appendix: source
Thrown at tools/sstableloader/src/org/apache/cassandra/tools/LoaderOptions.java:513
// below 2 checks are needed in order to match the pre-CASSANDRA-15234 upper bound for those parameters which were still in megabits per second
if (config.stream_throughput_outbound.toMegabitsPerSecond() >= Integer.MAX_VALUE)
{
throw new ConfigurationException("stream_throughput_outbound: " + config.stream_throughput_outbound.toString() + " is too large", false);
}
if (config.inter_dc_stream_throughput_outbound.toMegabitsPerSecond() >= Integer.MAX_VALUE)
{
throw new ConfigurationException("inter_dc_stream_throughput_outbound: " + config.inter_dc_stream_throughput_outbound.toString() + " is too large", false);
}
if (config.entire_sstable_stream_throughput_outbound.toMebibytesPerSecond() >= Integer.MAX_VALUE)
{
throw new ConfigurationException("entire_sstable_stream_throughput_outbound: " + config.entire_sstable_stream_throughput_outbound.toString() + " is too large", false);
}
if (config.entire_sstable_inter_dc_stream_throughput_outbound.toMebibytesPerSecond() >= Integer.MAX_VALUE)
{
throw new ConfigurationException("entire_sstable_inter_dc_stream_throughput_outbound: " + config.entire_sstable_inter_dc_stream_throughput_outbound.toString() + " is too large", false);
}
}
else
{
config = new Config();
// unthrottle stream by default
config.stream_throughput_outbound = new DataRateSpec.LongBytesPerSecondBound(0);
config.inter_dc_stream_throughput_outbound = new DataRateSpec.LongBytesPerSecondBound(0);
config.entire_sstable_stream_throughput_outbound = new DataRateSpec.LongBytesPerSecondBound(0);
config.entire_sstable_inter_dc_stream_throughput_outbound = new DataRateSpec.LongBytesPerSecondBound(0);
}
if (cmd.hasOption(STORAGE_PORT_OPTION))
storagePort = Integer.parseInt(cmd.getOptionValue(STORAGE_PORT_OPTION));
else
storagePort = config.storage_port;
if (cmd.hasOption(IGNORE_NODES_OPTION))View on GitHub (pinned to 88fd0f6a0e)