MySQL raises ER_XA_REPLICATION_FILTERS (3227) when an XA transaction runs on a server that has replication filters enabled, a combination the engine does not support.
ER_XA_REPLICATION_FILTERS appears when a MySQL XA (distributed) transaction executes on a source or replica with replication filters active. MySQL blocks this mix because it risks replica inconsistency. Remove the filters or avoid XA transactions to resolve the error.
ER_XA_REPLICATION_FILTERS
MySQL throws ER_XA_REPLICATION_FILTERS when a distributed XA transaction runs on an instance that also uses replication filtering rules such as replicate_do_db or replicate_ignore_table.
The server blocks the operation because mixing XA and replication filters can leave replicas inconsistent. The error was introduced in MySQL 5.7.23 and persists in later versions.
The primary trigger is executing START, END, PREPARE, COMMIT, or ROLLBACK for an XA transaction while any global replication filter is configured.
Filters that cause the error include replicate_do_db, replicate_ignore_db, replicate_wild_do_table, replicate_wild_ignore_table, and replicate_rewrite_db.
Remove global replication filters, restart the instance or channel, and rerun the XA workload.
If filters are required, avoid XA by using regular InnoDB transactions or move the filtered workload to a separate channel without XA traffic.
A replica with replicate_do_db tries to replay XA traffic from the source. Solution: drop replicate_do_db and resync.
An application issues XA BEGIN on the source that also filters tables for row-based replication. Solution: disable the filters or route XA to a dedicated channel.
Keep XA transactions and replication filters on separate channels or instances.
Use channel specific filters introduced in MySQL 8.0 to isolate XA traffic.
Monitor error logs for code 3227 during deployment changes.
ER_XAER_NOTA - happens when XA COMMIT references a nonexistent transaction. Check transaction IDs.
ER_XAER_INVAL - indicates an invalid XA command parameter. Verify gtrid and bqual sizes.
When replicate_do_db limits databases, any XA transaction triggers error 3227 because the filter could hide part of the two-phase commit.
Ignoring tables while replaying XA events risks partial commits, so MySQL blocks the transaction immediately.
Patterns set in replicate_wild_do_table or replicate_wild_ignore_table conflict with XA events that may span multiple tables.
Raised when an XA COMMIT or ROLLBACK references a transaction ID that is not found in the transaction cache.
Occurs when an XA command contains invalid arguments or sequence.
Indicates a resource manager failure during an XA operation, often due to engine crash or timeout.
Yes. MySQL 8.0 allows per channel filters that do not interfere with XA traffic on other channels.
No. The error is raised solely on the presence of replication filters during XA, regardless of GTID settings.
The error relates to replication filters, not binary logging. Disabling binlog does not remove the conflict.
Galaxy surfaces replication variables in its schema panel and warns users running XA commands on filtered replicas, helping you fix misconfigurations early.