apache/seatunnel · warning
Received DML 'sql' for processing, binlog probably contains…
Error message
Received DML 'sql' for processing, binlog probably contains events generated with statement or mixed based replication format
What it means
During streaming, a QUERY event containing DML (INSERT/UPDATE/DELETE) was received instead of row-based events. This happens when the binlog was produced with statement-based or mixed binlog format; Debezium's MySQL connector only supports row-based (ROW) replication, so the DML statement is logged and skipped (no data change events are emitted for it).
Solutions
- Set binlog_format=ROW on the source MySQL and restart it, then re-snapshot so the binlog contains row events from a clean position
- Verify with: SHOW VARIABLES LIKE 'binlog_format'; it must return ROW
- If binlog_format cannot be changed globally, set it per-session for writing applications or route CDC to a properly configured replica
- After changing the format, reset the connector offset/snapshot — events between the old and new positions cannot be recovered
Example fix
// before SET GLOBAL binlog_format = 'MIXED'; // after SET GLOBAL binlog_format = 'ROW'; -- then restart MySQL and take a fresh snapshot
Defensive patterns
Strategy: validation
Validate before calling
-- Run before configuring MySQL CDC: SHOW VARIABLES LIKE 'binlog_format'; -- fail the deploy unless the value is exactly 'ROW'
Prevention
- Enforce binlog_format=ROW on the source (and any replica used for CDC)
- Restart MySQL after changing binlog_format so it takes effect for all sessions
- Re-snapshot after switching from STATEMENT/MIXED to ROW
- Add a preflight config check for the source database settings
When it happens
Trigger: handleQueryEvent sees upperCasedStatementBegin matching 'INSERT ', 'UPDATE ', or 'DELETE ' — i.e. the source MySQL has binlog_format=STATEMENT or MIXED and row images are absent from the binlog.
Common situations: Replicating from a legacy replica or RDS instance still on binlog_format=STATEMENT/MIXED; an admin changed binlog_format without restarting; tables with statement-only updates (e.g. certain LOAD DATA or non-deterministic statements).
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
- A deserialization failure event arrived
- Cannot read the binlog filename and position via
- Cannot read the binlog filename and position via
- Cannot read the binlog filename and position via
- Encountered change event
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/c439509b2d94ef12.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/io/debezium/connector/mysql/MySqlStreamingChangeEventSource.java:650
if (sql.equalsIgnoreCase("COMMIT")) {
handleTransactionCompletion(partition, offsetContext, event);
return;
}
String upperCasedStatementBegin = Strings.getBegin(sql, 7).toUpperCase();
if (upperCasedStatementBegin.startsWith("XA ")) {
// This is an XA transaction, and we currently ignore these and do nothing ...
return;
}
if (connectorConfig.getDdlFilter().test(sql)) {
LOGGER.debug("DDL '{}' was filtered out of processing", sql);
return;
}
if (upperCasedStatementBegin.equals("INSERT ")
|| upperCasedStatementBegin.equals("UPDATE ")
|| upperCasedStatementBegin.equals("DELETE ")) {
LOGGER.warn(
"Received DML '"
+ sql
+ "' for processing, binlog probably contains events generated with statement or mixed based replication format");
return;
}
if (sql.equalsIgnoreCase("ROLLBACK")) {
// We have hit a ROLLBACK which is not supported
LOGGER.warn(
"Rollback statements cannot be handled without binlog buffering, the connector will fail. Please check '{}' to see how to enable buffering",
MySqlConnectorConfig.BUFFER_SIZE_FOR_BINLOG_READER.name());
}
final List<SchemaChangeEvent> schemaChangeEvents =
taskContext
.getSchema()
.parseStreamingDdl(
partition,
sql,View on GitHub (pinned to cf67b549a7)