apache/seatunnel · warning
The following STREAM_PARAMS value is invalid
Error message
The following STREAM_PARAMS value is invalid: {} What it means
ReplicationConnectionBuilder parses the slot.stream.params string (semicolon-separated key=value pairs). Any token that does not contain exactly one '=' is skipped and logged as an invalid STREAM_PARAMS value; it does not abort construction.
Solutions
- Fix the slot.stream.params value so every segment is exactly key=value, separated by semicolons: 'k1=v1;k2=v2'.
- Remove trailing semicolons and empty segments.
- Quote/escape values containing '=' by checking the parser (only two parts are accepted, so values cannot contain '=').
- Enable connector debug logs to confirm which segments were accepted.
Example fix
// before
{"slot.stream.params": "include-types=true;format-version=2;"}
// after
{"slot.stream.params": "include-types=true;format-version=2"} // no trailing ';', no empty segment Defensive patterns
Strategy: validation
Validate before calling
boolean ok = params == null || Arrays.stream(params.split(";")).filter(s -> !s.isEmpty()).allMatch(s -> s.split("=").length == 2); Prevention
- Every segment must be key=value; separate pairs with ';'.
- Strip trailing semicolons and whitespace.
- Avoid '=' inside values; encode if needed.
When it happens
Trigger: Building a PostgresReplicationConnection with slotStreamParams like 'k1=v1;k2' or 'k1=v1;;k2=v2' — the 'k2' (or empty) segment fails split('=') length==2 and triggers the warning.
Common situations: Copy-pasted Debezium slot.stream.params config with trailing semicolons; URL-encoded or quoted params pasted verbatim; users separating pairs with commas instead of '=' inside a segment.
Understand the failure class
Background: "Invalid ... format", "must be in format X", "does not look like a ..." — invalid argument format errors across CLI tools and libraries — this error's family across 17 libraries.
Related errors
- A slot marked as temporary or with an exported snapshot was…
- Cannot drop replication slot
- Cannot find table schema for table
- Cannot obtain valid replication slot
- Could not register for streaming with metadata in messages…
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/72b033e6967d2471.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-cdc/connector-cdc-opengauss/src/main/java/io/debezium/connector/postgresql/connection/PostgresReplicationConnection.java:869
}
@Override
public ReplicationConnectionBuilder dropSlotOnClose(final boolean dropSlotOnClose) {
this.dropSlotOnClose = dropSlotOnClose;
return this;
}
@Override
public ReplicationConnectionBuilder streamParams(final String slotStreamParams) {
if (slotStreamParams != null && !slotStreamParams.isEmpty()) {
this.slotStreamParams = new Properties();
String[] paramsWithValues = slotStreamParams.split(";");
for (String paramsWithValue : paramsWithValues) {
String[] paramAndValue = paramsWithValue.split("=");
if (paramAndValue.length == 2) {
this.slotStreamParams.setProperty(paramAndValue[0], paramAndValue[1]);
} else {
LOGGER.warn(
"The following STREAM_PARAMS value is invalid: {}",
paramsWithValue);
}
}
}
return this;
}
@Override
public ReplicationConnectionBuilder statusUpdateInterval(
final Duration statusUpdateInterval) {
this.statusUpdateIntervalVal = statusUpdateInterval;
return this;
}
@Override
public Builder doSnapshot(boolean doSnapshot) {
this.doSnapshot = doSnapshot;View on GitHub (pinned to cf67b549a7)