apache/cassandra · error · ConfigurationException
Invalid value of entire_sstable_stream_throughput_outbound:
Error message
Invalid value of entire_sstable_stream_throughput_outbound:
What it means
Thrown during Cassandra config sanity checks when the entire_sstable_stream_throughput_outbound value, converted to MiB/s, is >= Integer.MAX_VALUE. DatabaseDescriptor validates that throughput bounds fit into the internal int-based rate limiters; an absurdly large value cannot be represented. It is a fail-fast ConfigurationException raised at startup.
Source
Thrown at src/java/org/apache/cassandra/config/DatabaseDescriptor.java:1314
}
@VisibleForTesting
static void validateUpperBoundStreamingConfig() throws ConfigurationException
{
// 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 (conf.stream_throughput_outbound.toMegabitsPerSecond() >= Integer.MAX_VALUE)
{
throw new ConfigurationException("Invalid value of stream_throughput_outbound: " + conf.stream_throughput_outbound.toString(), false);
}
if (conf.inter_dc_stream_throughput_outbound.toMegabitsPerSecond() >= Integer.MAX_VALUE)
{
throw new ConfigurationException("Invalid value of inter_dc_stream_throughput_outbound: " + conf.inter_dc_stream_throughput_outbound.toString(), false);
}
if (conf.entire_sstable_stream_throughput_outbound.toMebibytesPerSecond() >= Integer.MAX_VALUE)
{
throw new ConfigurationException("Invalid value of entire_sstable_stream_throughput_outbound: " + conf.entire_sstable_stream_throughput_outbound.toString(), false);
}
if (conf.entire_sstable_inter_dc_stream_throughput_outbound.toMebibytesPerSecond() >= Integer.MAX_VALUE)
{
throw new ConfigurationException("Invalid value of entire_sstable_inter_dc_stream_throughput_outbound: " + conf.entire_sstable_inter_dc_stream_throughput_outbound.toString(), false);
}
if (conf.compaction_throughput.toMebibytesPerSecond() >= Integer.MAX_VALUE)
{
throw new ConfigurationException("Invalid value of compaction_throughput: " + conf.compaction_throughput.toString(), false);
}
}
@VisibleForTesting
static void applyConcurrentValidations(Config config)
{
if (config.concurrent_validations < 1)
{View on GitHub (pinned to 88fd0f6a0e)
Solutions
- Lower entire_sstable_stream_throughput_outbound in cassandra.yaml to a value below 2147483647 MiB/s (e.g. 0 or a sane Mbps/MiB/s value)
- Check the unit suffix in the yaml value (MiB vs KiB) and correct it
- If the intent was 'no limit', use the documented disabled value (0 or -1 per version docs) instead of a huge number
- Verify with the printed value in the exception message which value was actually parsed
Example fix
// before (cassandra.yaml) entire_sstable_stream_throughput_outbound: 2147483648MiB // after entire_sstable_stream_throughput_outbound: 200MiB
Defensive patterns
Strategy: validation
Validate before calling
long v = conf.entire_sstable_stream_throughput_outbound.toMebibytesPerSecond();
if (v < 0 || v >= Integer.MAX_VALUE) throw new IllegalArgumentException("entire_sstable_stream_throughput_outbound out of range: " + v); Try / catch
try { DatabaseDescriptor.daemonInitialization(); } catch (ConfigurationException e) { LOG.error("Bad throughput config: " + e.getMessage()); System.exit(1); } Prevention
- Keep throughput values well below Integer.MAX_VALUE MiB/s
- Use unit suffixes explicitly (MiB) in cassandra.yaml
- Use 0/-1 documented semantics for 'unlimited' instead of huge numbers
- Lint cassandra.yaml values before deployment
When it happens
Trigger: Setting entire_sstable_stream_throughput_outbound in cassandra.yaml (or via a Config object) to a value whose toMebibytesPerSecond() is >= 2147483647 (e.g. 2147483648MiB or an unbounded/0-suffix misspecification) before DatabaseDescriptor.applySimpleConfig / daemon init runs.
Common situations: Typo in cassandra.yaml such as an extra digit or wrong unit suffix (MiB vs KiB); copy-pasted value from another cluster; operator trying to 'disable' the limit with an astronomically large number instead of the documented 0/disabled semantics.
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
- Invalid value of entire_sstable_inter_dc_stream_throughput_o
- There are configuration entries for startup checks which do
- There are configuration entries for startup checks which are
- Commit log flush interval must be positive: %fms
- %s has authorization enabled which requires %s to enable aut
AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10).
Data as JSON: /api/errors/83805ba6fec7fede.
Report an issue: GitHub.