apache/seatunnel · error · UnsupportedOperationException
Jira source connector not support unbounded operation
Error message
Jira source connector not support unbounded operation
What it means
The Jira source connector only supports bounded (batch) execution. getBoundedness() returns BOUNDED for BATCH jobs but throws UnsupportedOperationException for any other mode, because the connector implements no unbounded/streaming read path.
Source
Thrown at seatunnel-connectors-v2/connector-http/connector-http-jira/src/main/java/org/apache/seatunnel/connectors/seatunnel/jira/source/JiraSource.java:59
// get accessToken by basic auth
String accessToken =
getTokenByBasicAuth(
pluginConfig.get(JiraSourceOptions.EMAIL),
pluginConfig.get(JiraSourceOptions.API_TOKEN));
jiraSourceParameter.buildWithConfig(pluginConfig, accessToken);
}
@Override
public String getPluginName() {
return "Jira";
}
@Override
public Boundedness getBoundedness() {
if (JobMode.BATCH.equals(jobContext.getJobMode())) {
return Boundedness.BOUNDED;
}
throw new UnsupportedOperationException(
"Jira source connector not support unbounded operation");
}
@Override
public AbstractSingleSplitReader<SeaTunnelRow> createReader(
SingleSplitReaderContext readerContext) throws Exception {
return new HttpSourceReader(
this.jiraSourceParameter,
readerContext,
this.deserializationSchema,
jsonField,
contentField);
}
}
View on GitHub (pinned to cf67b549a7)
Solutions
- Set job.mode = BATCH in the env block of the job config.
- If streaming ingestion from Jira is needed, use a connector with streaming support or schedule repeated batch jobs.
- Verify the config file actually targets BATCH before submission.
Example fix
// before
env {
job.mode = "STREAMING"
}
// after
env {
job.mode = "BATCH"
} Defensive patterns
Strategy: validation
Validate before calling
String jobMode = config.getString("job.mode");
if (!"BATCH".equalsIgnoreCase(jobMode)) {
throw new IllegalArgumentException("Jira source requires job.mode = BATCH, got: " + jobMode);
} Prevention
- Set job.mode = BATCH when using the Jira source.
- For continuous Jira ingestion, schedule repeated batch jobs via cron/airflow.
- Validate job configs in CI before deploying.
When it happens
Trigger: Running a SeaTunnel job in STREAMING mode (job.mode = STREAMING) with Jira as the source; the engine calls getBoundedness() at job startup and the connector throws.
Common situations: Reusing a streaming pipeline config for periodic Jira issue export; misconfigured env block where job.mode defaults to 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
- Gitlab source connector not support unbounded operation
- PostHog source connector only supports batch mode
- The connector of option is none
- Fluss source option 'start_mode=latest' is not supported in
- Unable to load Hive metastore client factory ${clientFactory
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/9e3f41e11ddc2ac8.
Report an issue: GitHub.