apache/seatunnel · error · IllegalArgumentException
SNMP source port must be between 1 and 65535
Error message
SNMP source port must be between 1 and 65535
What it means
SnmpSourceConfig.validate() rejects a port outside the valid TCP/UDP port range 1-65535. The port identifies the SNMP agent's UDP endpoint; a value of 0 or negative is meaningless, and anything above 65535 cannot be represented as a port number.
Source
Thrown at seatunnel-connectors-v2/connector-snmp/src/main/java/org/apache/seatunnel/connectors/seatunnel/snmp/config/SnmpSourceConfig.java:65
/** Creates an SNMP source configuration from connector options. */
public SnmpSourceConfig(ReadonlyConfig config) {
String configuredHost = config.get(SnmpSourceOptions.HOST);
if (isBlank(configuredHost)) {
throw new IllegalArgumentException("SNMP source host must not be blank");
}
this.host = configuredHost.trim();
this.port = config.get(SnmpSourceOptions.PORT);
this.community = config.get(SnmpSourceOptions.COMMUNITY);
this.oids = parseOids(config.get(SnmpSourceOptions.OIDS));
this.timeoutMillis = config.get(SnmpSourceOptions.TIMEOUT_MILLIS);
this.retries = config.get(SnmpSourceOptions.RETRIES);
this.pollIntervalMillis = config.get(SnmpSourceOptions.POLL_INTERVAL_MILLIS);
validate();
}
private void validate() {
if (port < 1 || port > 65535) {
throw new IllegalArgumentException("SNMP source port must be between 1 and 65535");
}
if (isBlank(community)) {
throw new IllegalArgumentException("SNMP source community must not be blank");
}
if (timeoutMillis <= 0) {
throw new IllegalArgumentException("SNMP source timeout_millis must be greater than 0");
}
if (retries < 0) {
throw new IllegalArgumentException("SNMP source retries must not be negative");
}
if (pollIntervalMillis <= 0) {
throw new IllegalArgumentException(
"SNMP source poll_interval_millis must be greater than 0");
}
}
private static boolean isBlank(String value) {
return value == null || value.trim().isEmpty();View on GitHub (pinned to cf67b549a7)
Solutions
- Set port to the SNMP agent's actual port, typically 161 (default) or 10161 for some devices
- Ensure the value is an integer between 1 and 65535
Example fix
// before port = 0 // after port = 161
Defensive patterns
Strategy: validation
Validate before calling
Integer port = config.get(SnmpSourceOptions.PORT);
if (port == null || port < 1 || port > 65535) {
throw new IllegalArgumentException("port must be an integer in [1, 65535]");
} Type guard
boolean isValidPort(Integer port) {
return port != null && port >= 1 && port <= 65535;
} Try / catch
try {
SnmpSourceConfig cfg = new SnmpSourceConfig(config);
} catch (IllegalArgumentException e) {
if (e.getMessage().contains("port must be between 1 and 65535")) {
// log the offending port value and correct config path
}
throw e;
} Prevention
- Default to 161 unless the device documents a different SNMP port
- Never use 0 or negative sentinels for ports
- Validate the rendered config with a pre-flight check before submitting the job
When it happens
Trigger: SnmpSourceConfig constructor calls validate() after reading SnmpSourceOptions.PORT; the error fires when the configured port option is < 1 or > 65535 (e.g. port = 0, port = -1, port = 70000).
Common situations: Port 0 used to mean 'auto' by habit from other tools; pasting an HTTPS port like 8443 into the wrong field; copying a value with extra characters (e.g. '161 ') or mixing up a device serial number for the port.
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
- Invalid endpoint port in endpoint: %s
- SNMP sink host must not be blank
- SNMP sink port must be between 1 and 65535
- SNMP sink community must not be blank
- SNMP sink timeout_millis must be greater than 0
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/456b09f664cb0959.
Report an issue: GitHub.