apache/seatunnel · error · UnsupportedOperationException
Unsupported save mode:
Error message
Unsupported save mode:
What it means
DefaultSaveModeHandler.handleSchemaSaveMode hit the default branch of its switch on schemaSaveMode: the configured value does not correspond to any known SchemaSaveMode enum constant. This is a sentinel guard for an unrecognized/null save mode string from the sink config ('schema_save_mode' option), not a data problem — the job fails before any DDL is applied.
Solutions
- Set schema_save_mode in the sink config to one of the supported values: RECREATE_SCHEMA, CREATE_SCHEMA_WHEN_NOT_EXIST, ERROR_WHEN_SCHEMA_NOT_EXIST, or IGNORE
- Check for typos and case differences in the configured value
- If using a custom save mode handler, make sure the config maps to a valid enum constant
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at seatunnel-api/src/main/java/org/apache/seatunnel/api/sink/DefaultSaveModeHandler.java:96 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/b363549cc0f2a136.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-api/src/main/java/org/apache/seatunnel/api/sink/DefaultSaveModeHandler.java:96
catalog.open();
}
@Override
public void handleSchemaSaveMode() {
switch (schemaSaveMode) {
case RECREATE_SCHEMA:
recreateSchema();
break;
case CREATE_SCHEMA_WHEN_NOT_EXIST:
createSchemaWhenNotExist();
break;
case ERROR_WHEN_SCHEMA_NOT_EXIST:
errorWhenSchemaNotExist();
break;
case IGNORE:
break;
default:
throw new UnsupportedOperationException("Unsupported save mode: " + schemaSaveMode);
}
}
@Override
public void handleDataSaveMode() {
switch (dataSaveMode) {
case DROP_DATA:
keepSchemaDropData();
break;
case APPEND_DATA:
keepSchemaAndData();
break;
case CUSTOM_PROCESSING:
customProcessing();
break;
case ERROR_WHEN_DATA_EXISTS:
errorWhenDataExists();
break;View on GitHub (pinned to cf67b549a7)