apache / apache/seatunnel

[Bug] [Connector] Doris Sink Issue

Open
#10,274 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Java
Stars
9.7k
Forks
2.4k
Avg merge
3d 9h
Merged PRs (30d)
204

Description

### Search before asking

- [x] I had searched in the [issues](https://github.com/apache/seatunnel/issues?q=is%3Aissue+label%3A%22bug%22) and found no similar issues.

### What happened

my job configuration is working well for Console, but I got the issue when I switched to Doris

Would you please help to check it?

==========================================================
My Lib list

connector-doris-2.3.12.jar
connector-jdbc-2.3.12.jar
mysql-connector-java-9.5.0.jar
seatunnel-hadoop-aws.jar
connector-file-local-2.3.12.jar
mysql-connector-j-9.5.0.jar
seatunnel-hadoop3-3.1.4-uber.jar
seatunnel-transforms-v2.jar

=======================================================================

my job configuration:

```
env {
execution.parallelism = 1
job.mode = "BATCH"
checkpoint.interval = 10000
}

source {
Jdbc {
driver = "com.mysql.cj.jdbc.Driver"
url = "jdbc:mysql://192.168.8.27:3306/sakila?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC"
user = "dbct"
password = "pwd1234"

query = "SELECT * FROM actor"

# table = "actor"

# partition configuration
partition_column = "actor_id"
partition_num = 10
partition_lower_bound = "0"
partition_upper_bound = "200"

# connection pool configuration
connection_check_timeout_sec = 100
max_retries = 3


fetch_size = 1000
}
}

transform {

}

sink {
Doris {
fenodes = "192.168.9.10:8030"
username = "dbct"
password = "pwd1234"
table.identifier = "ods_test.actor"

# core parameters
sink {
enable_2pc = true
label_prefix = "st_${now.format('yyyyMMddHHmmss')}"
}

# perfermance paramters
batch_size = 5000
flush_interval_ms = 2000
max_retries = 3

# Doris Stream Load improvement
doris {
column_separator = ","
format = "csv"
load_timeout_second = 300
exec_mem_limit = 2147483648
}

write_mode = "upsert"
}
}

```

```
================================================================

2026-01-05 02:34:24,043 ERROR [o.a.s.c.s.SeaTunnel ] [main] - Fatal Error,

2026-01-05 02:34:24,043 ERROR [o.a.s.c.s.SeaTunnel ] [main] - Please submit bug report in https://github.com/apache/seatunnel/issues

2026-01-05 02:34:24,043 ERROR [o.a.s.c.s.SeaTunnel ] [main] - Reason:SeaTunnel job executed failed

2026-01-05 02:34:24,044 ERROR [o.a.s.c.s.SeaTunnel ] [main] - Exception StackTrace:org.apache.seatunnel.core.starter.exception.CommandExecuteException: SeaTunnel job executed failed
at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:228)
at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40)
at org.apache.seatunnel.core.starter.seatunnel.SeaTunnelClient.main(SeaTunnelClient.java:40)
Caused by: org.apache.seatunnel.api.table.factory.FactoryException: ErrorCode:[API-06], ErrorDescription:[Factory initialize failed] - Unable to create a sink for identifier 'Doris'.
at org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSink(FactoryUtil.java:250)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.createSinkAction(MultipleTableJobConfigParser.java:687)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parseSink(MultipleTableJobConfigParser.java:610)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parse(MultipleTableJobConfigParser.java:257)
at org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.getLogicalDag(ClientJobExecutionEnvironment.java:123)
at org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.execute(ClientJobExecutionEnvironment.java:191)
at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:165)
... 2 more
Caused by: org.apache.seatunnel.api.configuration.util.OptionValidationException: ErrorCode:[API-02], ErrorDescription:[Option item validate failed] - There are unconfigured options, the options('doris.config') are required.
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:134)
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:95)
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:47)
at org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSink(FactoryUtil.java:239)
... 8 more

2026-01-05 02:34:24,044 ERROR [o.a.s.c.s.SeaTunnel ] [main] -
===============================================================================

Exception in thread "main" org.apache.seatunnel.core.starter.exception.CommandExecuteException: SeaTunnel job executed failed
at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:228)
at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40)
at org.apache.seatunnel.core.starter.seatunnel.SeaTunnelClient.main(SeaTunnelClient.java:40)
Caused by: org.apache.seatunnel.api.table.factory.FactoryException: ErrorCode:[API-06], ErrorDescription:[Factory initialize failed] - Unable to create a sink for identifier 'Doris'.
at org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSink(FactoryUtil.java:250)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.createSinkAction(MultipleTableJobConfigParser.java:687)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parseSink(MultipleTableJobConfigParser.java:610)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parse(MultipleTableJobConfigParser.java:257)
at org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.getLogicalDag(ClientJobExecutionEnvironment.java:123)
at org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.execute(ClientJobExecutionEnvironment.java:191)
at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:165)
... 2 more
Caused by: org.apache.seatunnel.api.configuration.util.OptionValidationException: ErrorCode:[API-02], ErrorDescription:[Option item validate failed] - There are unconfigured options, the options('doris.config') are required.
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:134)
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:95)
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:47)
at org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSink(FactoryUtil.java:239)
... 8 more
```

### SeaTunnel Version

2.3.12

### Running Command

```shell
bin/seatunnel.sh --config jobs/mysql_2_dorisv1.job -e local
```

### Error Exception

```
2026-01-05 02:43:17,055 ERROR [o.a.s.c.s.SeaTunnel ] [main] - Fatal Error,

2026-01-05 02:43:17,055 ERROR [o.a.s.c.s.SeaTunnel ] [main] - Please submit bug report in https://github.com/apache/seatunnel/issues

2026-01-05 02:43:17,055 ERROR [o.a.s.c.s.SeaTunnel ] [main] - Reason:SeaTunnel job executed failed

2026-01-05 02:43:17,056 ERROR [o.a.s.c.s.SeaTunnel ] [main] - Exception StackTrace:org.apache.seatunnel.core.starter.exception.CommandExecuteException: SeaTunnel job executed failed
at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:228)
at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40)
at org.apache.seatunnel.core.starter.seatunnel.SeaTunnelClient.main(SeaTunnelClient.java:40)
Caused by: org.apache.seatunnel.api.table.factory.FactoryException: ErrorCode:[API-06], ErrorDescription:[Factory initialize failed] - Unable to create a sink for identifier 'Doris'.
at org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSink(FactoryUtil.java:250)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.createSinkAction(MultipleTableJobConfigParser.java:687)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parseSink(MultipleTableJobConfigParser.java:610)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parse(MultipleTableJobConfigParser.java:257)
at org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.getLogicalDag(ClientJobExecutionEnvironment.java:123)
at org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.execute(ClientJobExecutionEnvironment.java:191)
at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:165)
... 2 more
Caused by: org.apache.seatunnel.api.configuration.util.OptionValidationException: ErrorCode:[API-02], ErrorDescription:[Option item validate failed] - There are unconfigured options, the options('doris.config') are required.
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:134)
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:95)
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:47)
at org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSink(FactoryUtil.java:239)
... 8 more

2026-01-05 02:43:17,057 ERROR [o.a.s.c.s.SeaTunnel ] [main] -
===============================================================================

Exception in thread "main" org.apache.seatunnel.core.starter.exception.CommandExecuteException: SeaTunnel job executed failed
at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:228)
at org.apache.seatunnel.core.starter.SeaTunnel.run(SeaTunnel.java:40)
at org.apache.seatunnel.core.starter.seatunnel.SeaTunnelClient.main(SeaTunnelClient.java:40)
Caused by: org.apache.seatunnel.api.table.factory.FactoryException: ErrorCode:[API-06], ErrorDescription:[Factory initialize failed] - Unable to create a sink for identifier 'Doris'.
at org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSink(FactoryUtil.java:250)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.createSinkAction(MultipleTableJobConfigParser.java:687)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parseSink(MultipleTableJobConfigParser.java:610)
at org.apache.seatunnel.engine.core.parse.MultipleTableJobConfigParser.parse(MultipleTableJobConfigParser.java:257)
at org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.getLogicalDag(ClientJobExecutionEnvironment.java:123)
at org.apache.seatunnel.engine.client.job.ClientJobExecutionEnvironment.execute(ClientJobExecutionEnvironment.java:191)
at org.apache.seatunnel.core.starter.seatunnel.command.ClientExecuteCommand.execute(ClientExecuteCommand.java:165)
... 2 more
Caused by: org.apache.seatunnel.api.configuration.util.OptionValidationException: ErrorCode:[API-02], ErrorDescription:[Option item validate failed] - There are unconfigured options, the options('doris.config') are required.
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:134)
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:95)
at org.apache.seatunnel.api.configuration.util.ConfigValidator.validate(ConfigValidator.java:47)
at org.apache.seatunnel.api.table.factory.FactoryUtil.createAndPrepareSink(FactoryUtil.java:239)
```

### Zeta or Flink or Spark Version

Zeta 2.3.12

### Java or Scala Version

OpenJDK Runtime Environment Zulu17.62+17-CA (build 17.0.17+10-LTS)
OpenJDK 64-Bit Server VM Zulu17.62+17-CA (build 17.0.17+10-LTS, mixed mode, sharing)

### Screenshots

Image

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

### Code of Conduct

- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the reported command, jobs/mysql_2_dorisv1.job, and the stack trace through FactoryUtil and MultipleTableJobConfigParser. Inspect the Doris connector's option validation for the reported doris.config requirement and reproduce the initialization failure with SeaTunnel 2.3.12. Done means the configuration is handled consistently and the job proceeds past sink creation or reports a clear actionable error.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, mysql
Domain
databases
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.