apache/cassandra · error · ConfigurationException

entire_sstable_inter_dc_stream_throughput_outbound

Error message

entire_sstable_inter_dc_stream_throughput_outbound: %s is too large

What it means

Guard on the cross-datacenter entire-sstable streaming throttle: if entire_sstable_inter_dc_stream_throughput_outbound converts to >= Integer.MAX_VALUE mebibytes per second, LoaderOptions.Builder throws ConfigurationException 'entire_sstable_inter_dc_stream_throughput_outbound: <value> is too large'. See tools/sstableloader/src/org/apache/cassandra/tools/LoaderOptions.java:513.

Solutions

  1. Set entire_sstable_inter_dc_stream_throughput_outbound to a realistic rate or remove/null it in cassandra.yaml
  2. Audit the whole throughput block of cassandra.yaml for unit mistakes
  3. Point sstableloader at the correct --conf-path

Example fix

// before (cassandra.yaml)
entire_sstable_inter_dc_stream_throughput_outbound: 123456789012MiB/s
// after
entire_sstable_inter_dc_stream_throughput_outbound: 50MiB/s
Defensive patterns

Strategy: validation

Validate before calling

// pre-check config
// grep entire_sstable_inter_dc_stream_throughput_outbound $CONF/cassandra.yaml
// value should be a sane MiB/s rate or 0/null to disable

Try / catch

try {
    options = new LoaderOptions.Builder(dirs, args).build();
} catch (ConfigurationException e) {
    if (e.getMessage().startsWith("entire_sstable_inter_dc_stream_throughput_outbound")) {
        // fix the yaml value and retry
    }
    throw e;
}

Prevention

When it happens

Trigger: sstableloader loading a cassandra.yaml where entire_sstable_inter_dc_stream_throughput_outbound is set above the int bound in MiB/s — a config value error detected during option building.

Common situations: Typo'd or machine-generated extreme values in cassandra.yaml; unit confusion (Mbps vs MiB/s) when migrating configs across 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


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

Appendix: source

Thrown at tools/sstableloader/src/org/apache/cassandra/tools/LoaderOptions.java:513

                    // 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);
                    config.entire_sstable_stream_throughput_outbound = new DataRateSpec.LongBytesPerSecondBound(0);
                    config.entire_sstable_inter_dc_stream_throughput_outbound = new DataRateSpec.LongBytesPerSecondBound(0);
                }

                if (cmd.hasOption(STORAGE_PORT_OPTION))
                    storagePort = Integer.parseInt(cmd.getOptionValue(STORAGE_PORT_OPTION));
                else
                    storagePort = config.storage_port;

                if (cmd.hasOption(IGNORE_NODES_OPTION))

View on GitHub (pinned to 88fd0f6a0e)