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

  1. 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)
  2. Check the unit suffix in the yaml value (MiB vs KiB) and correct it
  3. If the intent was 'no limit', use the documented disabled value (0 or -1 per version docs) instead of a huge number
  4. 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

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


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