apache/beam · warning
SolaceIO.Write: Overriding PUB_ACK_WINDOW_SIZE to
Error message
SolaceIO.Write: Overriding PUB_ACK_WINDOW_SIZE to {} since HIGHER_THROUGHPUT mode was selected What it means
When HIGHER_THROUGHPUT submission mode is selected, Solace publisher SessionService overrides PUB_ACK_WINDOW_SIZE to BATCHED_PUB_ACK_WINDOW. If the user had set a different ack window, this WARN tells them their value is replaced. Informational only.
Solutions
- Accept the override (it is the mode's intended behavior).
- If a custom ack window matters, use SubmissionMode.CUSTOM with your full JCSMP properties.
- Remove the explicit PUB_ACK_WINDOW_SIZE to silence the warning.
Example fix
// before props.setProperty(JCSMPProperties.PUB_ACK_WINDOW_SIZE, 51); .withSubmissionMode(SubmissionMode.HIGHER_THROUGHPUT); // after: keep custom value via CUSTOM mode .withSubmissionMode(SubmissionMode.CUSTOM);
Defensive patterns
Strategy: validation
Validate before calling
Integer ackWindow = (Integer) props.getProperty(JCSMPProperties.PUB_ACK_WINDOW_SIZE);
if (mode == SubmissionMode.HIGHER_THROUGHPUT && ackWindow != null && ackWindow != BATCHED_PUB_ACK_WINDOW) {
LOG.warn("Custom PUB_ACK_WINDOW_SIZE " + ackWindow + " will be overridden");
} Prevention
- Use SubmissionMode.CUSTOM when a hand-tuned ack window matters.
- Document custom JCSMP settings next to the write transform config.
- Review broker-side batching behavior after mode changes.
When it happens
Trigger: write().withSubmissionMode(HIGHER_THROUGHPUT) combined with an explicit JCSMPProperties.PUB_ACK_WINDOW_SIZE that differs from BATCHED_PUB_ACK_WINDOW.
Common situations: Users hand-tuning ack windows for throughput/latency tradeoffs but then also selecting a built-in submission mode that re-applies its own defaults.
Understand the failure class
Background: Conflicting config options: "cannot be used together" — configuration validation errors across open-source libraries — this error's family across 162 libraries.
Related errors
- SolaceIO.Write: Overriding JCSMP properties for testing…
- SolaceIO.Write: Overriding MESSAGE_CALLBACK_ON_REACTOR to…
- SolaceIO.Write: Overriding MESSAGE_CALLBACK_ON_REACTOR to…
- SolaceIO.Write: Overriding PUB_ACK_WINDOW_SIZE to
- A 'datagen' table requires either 'rows-per-second' (for…
AI-assisted analysis of apache/beam@12126d8942 (2026-09-13).
Data as JSON: /api/errors/6388e3bc66e3fbc4.
Report an issue: GitHub.
Appendix: source
Thrown at sdks/java/io/solace/src/main/java/org/apache/beam/sdk/io/solace/broker/SessionService.java:227
// PUB_ACK_WINDOW_SIZE heavily affects performance when publishing persistent
// messages. It can be a value between 1 and 255. This is the batch size for the ack
// received from Solace. A value of 1 will have the lowest latency, but a very low
// throughput and a monumental backpressure.
// Retrieve current values of the properties
Boolean msgCbProp = props.getBooleanProperty(JCSMPProperties.MESSAGE_CALLBACK_ON_REACTOR);
Integer ackWindowSize = props.getIntegerProperty(JCSMPProperties.PUB_ACK_WINDOW_SIZE);
switch (mode) {
case HIGHER_THROUGHPUT:
// Check if it was set by user, show override warning
if (msgCbProp != null && msgCbProp) {
LOG.warn(
"SolaceIO.Write: Overriding MESSAGE_CALLBACK_ON_REACTOR to false since"
+ " HIGHER_THROUGHPUT mode was selected");
}
if ((ackWindowSize != null && ackWindowSize != BATCHED_PUB_ACK_WINDOW)) {
LOG.warn(
"SolaceIO.Write: Overriding PUB_ACK_WINDOW_SIZE to {} since"
+ " HIGHER_THROUGHPUT mode was selected",
BATCHED_PUB_ACK_WINDOW);
}
// Override the properties
// Use a dedicated thread for callbacks, increase the ack window size
props.setProperty(JCSMPProperties.MESSAGE_CALLBACK_ON_REACTOR, false);
props.setProperty(JCSMPProperties.PUB_ACK_WINDOW_SIZE, BATCHED_PUB_ACK_WINDOW);
LOG.info(
"SolaceIO.Write: Using HIGHER_THROUGHPUT mode, MESSAGE_CALLBACK_ON_REACTOR is FALSE,"
+ " PUB_ACK_WINDOW_SIZE is {}",
BATCHED_PUB_ACK_WINDOW);
break;
case LOWER_LATENCY:
// Check if it was set by user, show override warning
if (msgCbProp != null && !msgCbProp) {
LOG.warn(View on GitHub (pinned to 12126d8942)