apache/seatunnel · error · IllegalArgumentException
SNMP source community must not be blank
Error message
SNMP source community must not be blank
What it means
The community string is the SNMPv1/v2c authentication token sent with every request; validate() throws when the configured 'community' option is null or blank because the agent would reject or the request would be meaningless without it.
Solutions
- Set the community string matching the agent's config, e.g. community = "public"
- Confirm the agent actually uses SNMPv2c/v1 (community-based); for SNMPv3 this connector's validation still requires community unless a different auth mode is supported
- Check for whitespace-only values or bad variable substitution
Example fix
// before community = "" // after community = "public"
Defensive patterns
Strategy: validation
Validate before calling
String community = config.get(SnmpSourceOptions.COMMUNITY);
if (community == null || community.trim().isEmpty()) {
throw new IllegalArgumentException("SNMP 'community' is required for v1/v2c agents");
} Type guard
boolean hasCommunity(String community) {
return community != null && !community.trim().isEmpty();
} Try / catch
try {
SnmpSourceConfig cfg = new SnmpSourceConfig(config);
} catch (IllegalArgumentException e) {
if (e.getMessage().contains("community must not be blank")) {
// prompt for/derive the community string, e.g. default "public"
}
throw e;
} Prevention
- Set community explicitly; do not rely on sanitized example configs
- Load secrets (community strings) from a secure source, not placeholders
- Confirm agent SNMP version: v1/v2c need community, v3 uses user-based auth
When it happens
Trigger: SnmpSourceConfig.validate() checks isBlank(community) after the constructor reads SnmpSourceOptions.COMMUNITY; fires when community is omitted, empty, or whitespace-only in the source config.
Common situations: Sanitized configs where the real community ('public' or a private one) was stripped before committing; assuming SNMPv3-style credentials (user/auth) and skipping community; copy of a v3 example used with a v2c agent that still requires community.
Understand the failure class
Background: "is required", "must be set", "missing required field": configuration validation errors across open-source libraries — this error's family across 36 libraries.
Related errors
- accessId and accesskey must be provided when sts_token is…
- AzureCosmosDB requires key, primary_key, secondary_key, or…
- Collector authentication failed from
- CONFIG_VALIDATION_FAILED
- Duplicate SNMP source OID
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/87491bdb6c749be1.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-snmp/src/main/java/org/apache/seatunnel/connectors/seatunnel/snmp/config/SnmpSourceConfig.java:68
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();
}
@OverrideView on GitHub (pinned to cf67b549a7)