{"record":{"id":"64f33645214acd07","repo":"apache/cassandra","slug":"stream-throughput-outbound-s-is-too-large","errorCode":null,"errorMessage":"stream_throughput_outbound: %s is too large","messagePattern":"stream_throughput_outbound: (.+?) is too large","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"error","filePath":"tools/sstableloader/src/org/apache/cassandra/tools/LoaderOptions.java","lineNumber":498,"sourceCode":"                }\n\n                // try to load config file first, so that values can be\n                // rewritten with other option values.\n                // otherwise use default config.\n                Config config;\n                if (cmd.hasOption(CONFIG_PATH))\n                {\n                    File configFile = new File(cmd.getOptionValue(CONFIG_PATH));\n                    if (!configFile.exists())\n                    {\n                        errorMsg(\"Config file not found\", options);\n                    }\n                    config = new YamlConfigurationLoader().loadConfig(configFile.toPath().toUri().toURL());\n\n                    // 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\n                    if (config.stream_throughput_outbound.toMegabitsPerSecond() >= Integer.MAX_VALUE)\n                    {\n                        throw new ConfigurationException(\"stream_throughput_outbound: \" + config.stream_throughput_outbound.toString() + \" is too large\", false);\n                    }\n\n                    if (config.inter_dc_stream_throughput_outbound.toMegabitsPerSecond() >= Integer.MAX_VALUE)\n                    {\n                        throw new ConfigurationException(\"inter_dc_stream_throughput_outbound: \" + config.inter_dc_stream_throughput_outbound.toString() + \" is too large\", false);\n                    }\n\n                    if (config.entire_sstable_stream_throughput_outbound.toMebibytesPerSecond() >= Integer.MAX_VALUE)\n                    {\n                        throw new ConfigurationException(\"entire_sstable_stream_throughput_outbound: \" + config.entire_sstable_stream_throughput_outbound.toString() + \" is too large\", false);\n                    }\n\n                    if (config.entire_sstable_inter_dc_stream_throughput_outbound.toMebibytesPerSecond() >= Integer.MAX_VALUE)\n                    {\n                        throw new ConfigurationException(\"entire_sstable_inter_dc_stream_throughput_outbound: \" + config.entire_sstable_inter_dc_stream_throughput_outbound.toString() + \" is too large\", false);\n                    }\n                }\n                else","sourceCodeStart":480,"sourceCodeEnd":516,"githubUrl":"https://github.com/apache/cassandra/blob/88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1/tools/sstableloader/src/org/apache/cassandra/tools/LoaderOptions.java#L480-L516","documentation":"When sstableloader reads the local cassandra.yaml to derive defaults, it enforces the pre-CASSANDRA-15234 upper bound that stream_throughput_outbound, expressed in megabits per second, fits in an int. If the configured rate is >= Integer.MAX_VALUE megabits/sec it throws ConfigurationException 'stream_throughput_outbound: <value> is too large'. See tools/sstableloader/src/org/apache/cassandra/tools/LoaderOptions.java:498.","triggerScenarios":"Running sstableloader against a cassandra.yaml whose stream_throughput_outbound converts to >= Integer.MAX_VALUE megabits per second — practically a mis-entered value with confused units in the config file.","commonSituations":"Hand-edited cassandra.yaml with typo'd or unit-confused throughput values (MiB/s vs Mbps); tooling writing absurd values; configs copied from test environments.","solutions":["Set stream_throughput_outbound to a sane value (e.g. 200MiB/s) or null to disable throttling in cassandra.yaml","Check the units — the value is a rate like 200MiB/s, not raw megabits","Point sstableloader at the correct config via --conf-path"],"exampleFix":"// before (cassandra.yaml)\nstream_throughput_outbound: 99999999999MiB/s\n// after\nstream_throughput_outbound: 200MiB/s","handlingStrategy":"validation","validationCode":"// pre-check the config value sstableloader will read\n// grep stream_throughput_outbound $CONF/cassandra.yaml\n// value should be a sane rate like '200MiB/s' or null","typeGuard":null,"tryCatchPattern":"try {\n    options = new LoaderOptions.Builder(dirs, args).build();\n} catch (ConfigurationException e) {\n    if (e.getMessage().startsWith(\"stream_throughput_outbound\")) {\n        // fix cassandra.yaml and retry\n    }\n    throw e;\n}","preventionTips":["Keep stream_throughput_outbound within realistic bounds (tens to hundreds of MiB/s) or null","Don't put megabit values into MiB/s-typed config fields","Audit generated/copy-pasted cassandra.yaml files before use","Pin the intended config with --conf-path"],"tags":["config","yaml","sstableloader"],"backgroundTag":"invalid-config-value","analyzedSha":"88fd0f6a0eaed8943f05ac9e8f947882b8ddc8f1","analyzedAt":"2026-09-10T07:29:22.284Z","contentChangedAt":"2026-09-10T07:29:22.284Z","schemaVersion":2},"datasetVersion":"2026-09-17T15:17:12.973Z"}