apache/cassandra · error · ConfigurationException

Invalid value of inter_dc_stream_throughput_outbound:

Error message

Invalid value of inter_dc_stream_throughput_outbound: 

What it means

validateUpperBoundStreamingConfig enforces the same int-sized upper bound for inter-dc streaming: inter_dc_stream_throughput_outbound converted to megabits per second must be < Integer.MAX_VALUE. DatabaseDescriptor throws this ConfigurationException otherwise.

Source

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

        }
        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)
        {
            throw new ConfigurationException("Invalid value of compaction_throughput: " + conf.compaction_throughput.toString(), false);
        }
    }

View on GitHub (pinned to 88fd0f6a0e)

Solutions

  1. Set inter_dc_stream_throughput_outbound to a realistic rate below Integer.MAX_VALUE megabits per second
  2. Verify the duration/rate unit suffix in cassandra.yaml

Example fix

// before (cassandra.yaml)
inter_dc_stream_throughput_outbound: 2147483647Mb/s
// after
inter_dc_stream_throughput_outbound: 50MiB/s
Defensive patterns

Strategy: validation

Validate before calling

if (conf.inter_dc_stream_throughput_outbound.toMegabitsPerSecond() >= Integer.MAX_VALUE) throw new IllegalArgumentException("inter_dc_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 inter_dc_stream_throughput_outbound >= 2147483647 megabits per second in cassandra.yaml.

Common situations: Unit mistake producing an astronomically large inter-DC throttle value; copy-paste of stream_throughput_outbound with a wrong magnitude.

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/d0c817bb30a3d108. Report an issue: GitHub.