The transaction's write set exceeds the configured size limit, blocking commit in MySQL.
MySQL ER_WRITE_SET_EXCEEDS_LIMIT occurs when a transaction's write set is larger than the group_replication_transaction_size_limit. Reduce the payload, split the work, or raise the limit with SET GLOBAL group_replication_transaction_size_limit to resolve the issue.
ER_WRITE_SET_EXCEEDS_LIMIT
MySQL returns ER_WRITE_SET_EXCEEDS_LIMIT when the total amount of write set data generated by the current transaction surpasses the group_replication_transaction_size_limit (default 14336 bytes). The server cancels the commit to protect Group Replication from excessive payloads.
The error only appears in MySQL 5.7.33 and later when binary log or Group Replication tracking is enabled; standalone servers without write-set based replication will not trigger it.
A transaction that inserts, updates, or deletes large rows can exceed the write set limit, especially when BLOB, TEXT, or JSON columns are modified.
Low group_replication_transaction_size_limit or an unexpected spike in row size can also act as the root cause.
Reduce the size of each write or break the transaction into smaller batches so that every commit fits under the configured limit.
Alternatively increase the global or session variable group_replication_transaction_size_limit to a value higher than the expected write set size.
Bulk loading images into a BLOB column often triggers the error; split the load into 1 000 row batches or switch to streaming files outside the database.
Schema migrations that add a large column and populate it in one step can fail; perform the update in small slices or enlarge the limit temporarily.
Estimate the write set footprint of heavy DML jobs during development and adjust limits in staging.
Monitor Performance Schema table replication_group_rpl_stats for transactions approaching the threshold and alert before a failure.
Store unstructured data in object storage when possible and keep row sizes modest to avoid replication bottlenecks.
ER_GROUP_REPLICATION_MAX_GROUP_SIZE exceeded indicates too many members and requires reconfiguration.
ER_BINLOG_LOGGING_IMPOSSIBLE warns that binary logging is disabled and can block Group Replication; enable log_bin.
Updating or inserting rows that contain big BLOB, TEXT, or JSON columns quickly pushes the write set over the default 14336 byte limit.
Executing thousands of small DML statements inside a single transaction aggregates write set metadata until the limit is reached.
A deliberately low group_replication_transaction_size_limit for testing environments can unexpectedly break production sized workloads.
Occurs when GTID_NEXT is not properly set for a transaction in GTID mode.
Raised when write set tracking is disabled while Group Replication expects it.
Indicates failure to initialize the applier thread due to misconfiguration.
Yes, but only if the server is not part of a Group Replication cluster; otherwise replication will break.
MySQL sets 14336 bytes by default as of version 8.0.30.
Slightly larger limits have negligible impact, but extremely large values can slow conflict detection and consume more memory.
Galaxy alerts you when a statement approaches the limit and suggests batching or configuration changes before running in production.