apache/cassandra · error · ConfigurationException
inter_dc_stream_throughput_outbound
Error message
inter_dc_stream_throughput_outbound: %s is too large
What it means
Same pre-CASSANDRA-15234 int-overflow guard applied to inter_dc_stream_throughput_outbound: if the configured cross-datacenter outbound stream rate converts to >= Integer.MAX_VALUE megabits per second, Builder throws ConfigurationException 'inter_dc_stream_throughput_outbound: <value> is too large'. See tools/sstableloader/src/org/apache/cassandra/tools/LoaderOptions.java:503.
Solutions
- Set inter_dc_stream_throughput_outbound to a realistic rate (e.g. 50MiB/s) or null (unthrottled)
- Verify units — the value is a rate, not raw megabits
- Ensure --conf-path points at the intended config
Example fix
// before (cassandra.yaml) inter_dc_stream_throughput_outbound: 2147483648Mbps // after inter_dc_stream_throughput_outbound: 50MiB/s
Defensive patterns
Strategy: validation
Validate before calling
// pre-check config // grep inter_dc_stream_throughput_outbound $CONF/cassandra.yaml // value should be like '50MiB/s' or null, never >= 2^31 Mbps
Try / catch
try {
options = new LoaderOptions.Builder(dirs, args).build();
} catch (ConfigurationException e) {
if (e.getMessage().startsWith("inter_dc_stream_throughput_outbound")) {
// correct the yaml and retry
}
throw e;
} Prevention
- Set inter-DC throttles to realistic rates (e.g. 50MiB/s) or null
- Validate config after migration between Cassandra versions
- Avoid scripting extreme placeholder values into cassandra.yaml
- Use --conf-path to pin the intended config file
When it happens
Trigger: sstableloader loading a cassandra.yaml where inter_dc_stream_throughput_outbound is so high that toMegabitsPerSecond() >= Integer.MAX_VALUE — a typo'd or unit-confused rate.
Common situations: Mis-edited cassandra.yaml with an absurd inter-DC throttle; unit confusion when migrating configs between 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_inter_dc_stream_throughput_outbound
- entire_sstable_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/f47e27d58bf3bd8e.
Report an issue: GitHub.
Appendix: source
Thrown at tools/sstableloader/src/org/apache/cassandra/tools/LoaderOptions.java:503
Config config;
if (cmd.hasOption(CONFIG_PATH))
{
File configFile = new File(cmd.getOptionValue(CONFIG_PATH));
if (!configFile.exists())
{
errorMsg("Config file not found", options);
}
config = new YamlConfigurationLoader().loadConfig(configFile.toPath().toUri().toURL());
// 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);View on GitHub (pinned to 88fd0f6a0e)