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

  1. Set job.mode = BATCH in the env block of the job config.
  2. If streaming ingestion from Jira is needed, use a connector with streaming support or schedule repeated batch jobs.
  3. 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

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


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/9e3f41e11ddc2ac8. Report an issue: GitHub.