apache/seatunnel · error · AzureQueueConnectorException
CONFIGURATION_FAILED
CONFIGURATION_FAILED
Error message
Azure Queue Storage source supports streaming jobs only
What it means
AzureQueueStorageSource.getBoundedness() throws AzureQueueConnectorException(CONFIGURATION_FAILED) when the job mode is not STREAMING. This source continuously polls a queue (UNBOUNDED), so it only makes sense in streaming mode; batch mode is rejected explicitly.
Source
Thrown at seatunnel-connectors-v2/connector-azure-queue-storage/src/main/java/org/apache/seatunnel/connectors/seatunnel/azure/queue/source/AzureQueueStorageSource.java:63
private final AzureQueueSourceConfig config;
private final CatalogTable catalogTable;
private final DeserializationSchema<SeaTunnelRow> deserializationSchema;
private JobContext jobContext;
public AzureQueueStorageSource(
AzureQueueSourceConfig config,
CatalogTable catalogTable,
DeserializationSchema<SeaTunnelRow> deserializationSchema) {
this.config = config;
this.catalogTable = catalogTable;
this.deserializationSchema = deserializationSchema;
}
@Override
public Boundedness getBoundedness() {
if (jobContext != null) {
if (!JobMode.STREAMING.equals(jobContext.getJobMode())) {
throw new AzureQueueConnectorException(
AzureQueueConnectorErrorCode.CONFIGURATION_FAILED,
"Azure Queue Storage source supports streaming jobs only");
}
if (!jobContext.isEnableCheckpoint()) {
throw new AzureQueueConnectorException(
AzureQueueConnectorErrorCode.CONFIGURATION_FAILED,
"Azure Queue Storage source requires checkpointing to delete messages");
}
}
return Boundedness.UNBOUNDED;
}
@Override
public String getPluginName() {
return PLUGIN_NAME;
}
@OverrideView on GitHub (pinned to cf67b549a7)
Solutions
- Set job.mode = "streaming" in the env block of the job config
- If a batch read is truly needed, use a different bounded source
Example fix
// before
env {
job.mode = "BATCH"
}
// after
env {
job.mode = "STREAMING"
} Defensive patterns
Strategy: validation
Validate before calling
if (!"streaming".equalsIgnoreCase(env.get("job.mode"))) {
throw new IllegalArgumentException("Azure Queue Storage source requires job.mode = streaming");
} Prevention
- Always include env { job.mode = "streaming" } when using queue sources
- Template streaming configs separately from batch ones
- Review job mode before local (-e local) test runs
When it happens
Trigger: Submitting a job with this source in BATCH job mode; getBoundedness() is consulted during source capability checks (shouldRequireStreamingModeWithCheckpointing).
Common situations: Users reusing a streaming config for a one-off backfill, or running 'seatunnel.sh' with -e local in batch mode by default without setting job.mode = streaming.
Understand the failure class
Background: UnsupportedOperationException and "is not supported" errors: when a library deliberately refuses a call — this error's family across 30 libraries.
Related errors
- '%s' source don't support off-line job.
- MqttConnectorErrorCode.INVALID_CONFIG
- Option '${option}' cannot be blank
- Option '${valuesAndOptions[index + 1]}' is not valid for the
- Option 'field_delimiter' cannot be empty
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/78b00877a315aa7f.
Report an issue: GitHub.