apache/cassandra · error · ConfigurationException

Invalid value of stream_throughput_outbound:

Error message

Invalid value of stream_throughput_outbound: 

What it means

validateUpperBoundStreamingConfig preserves the pre-CASSANDRA-15234 upper bound where stream_throughput_outbound was expressed in megabits per second as an int. DatabaseDescriptor throws this ConfigurationException when the configured rate, converted to megabits/second, is >= Integer.MAX_VALUE.

Source

Thrown at src/java/org/apache/cassandra/config/DatabaseDescriptor.java:1304

            // is thrown when arguments are invalid instead ConfigurationException, on purpose.
            DatabaseDescriptor.setGCLogThreshold((int) DatabaseDescriptor.getGCLogThreshold());
            DatabaseDescriptor.setGCWarnThreshold((int) DatabaseDescriptor.getGCWarnThreshold());
            DatabaseDescriptor.setGCConcurrentPhaseLogThreshold(DatabaseDescriptor.getGCConcurrentPhaseLogThreshold());
            DatabaseDescriptor.setGCConcurrentPhaseWarnThreshold(DatabaseDescriptor.getGCConcurrentPhaseWarnThreshold());
        }
        catch (IllegalArgumentException ex)
        {
            throw new ConfigurationException(ex.getMessage());
        }
    }

    @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)

View on GitHub (pinned to 88fd0f6a0e)

Solutions

  1. Set stream_throughput_outbound to a realistic rate well below Integer.MAX_VALUE megabits per second
  2. Check the unit suffix (e.g. 200MiB/s) - an accidental huge value usually indicates a unit error

Example fix

// before (cassandra.yaml)
stream_throughput_outbound: 9999999999999MiB/s
// after
stream_throughput_outbound: 200MiB/s
Defensive patterns

Strategy: validation

Validate before calling

if (conf.stream_throughput_outbound.toMegabitsPerSecond() >= Integer.MAX_VALUE) throw new IllegalArgumentException("stream_throughput_outbound too large");

Try / catch

try { DatabaseDescriptor.daemonInitialization(); } catch (ConfigurationException e) { log.error(e.getMessage()); }

Prevention

When it happens

Trigger: DatabaseDescriptor static initialization with stream_throughput_outbound >= 2147483647 megabits per second in cassandra.yaml.

Common situations: Extremely large stream_throughput_outbound values (often from unit mistakes, e.g. confusing bytes/sec with bits/sec) in cassandra.yaml.

Understand the failure class

Background: "value must be between 0 and 1" / "out of range" / "must not be negative" errors: fixing range-validation failures across open-source libraries — this error's family across 42 libraries.

Related errors


AI-assisted analysis of apache/cassandra@88fd0f6a0e (2026-09-10). Data as JSON: /api/errors/16c6349170f0b673. Report an issue: GitHub.