Replication fails because AUTO_POSITION requires GTID_MODE=ON but the server is running with GTID_MODE=OFF.
ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF appears when you start replication with AUTO_POSITION=1 while gtid_mode is OFF. Switch gtid_mode to ON (or OFF_PERMISSIVE) and restart the channel to resolve the issue.
ER_CANT_USE_AUTO_POSITION_WITH_GTID_MODE_OFF
Error 3112 is raised when a replica (receiver thread) is configured with AUTO_POSITION = 1, but the source server has gtid_mode set to OFF. MySQL cannot compute coordinates from global transaction identifiers if GTID support is disabled, so replication start fails.
The message only appears in MySQL 5.7.6 and later because that is when the server added strict checks for GTID consistency. Fixing it quickly is vital because the channel will remain stopped and data will diverge.
The primary cause is a mismatch between replication settings: AUTO_POSITION requires GTID_MODE=ON or OFF_PERMISSIVE, yet the server variable gtid_mode is OFF. The receiver thread detects the conflict during START SLAVE or CHANGE MASTER.
The error can also surface after an upgrade or configuration drift where GTID_MODE was unintentionally turned off while the replica configuration still contains MASTER_AUTO_POSITION=1.
Enable GTID on the source (and ideally on replicas) or disable auto_position on the replica. Enabling GTID preserves modern fail-over features.
Steps to enable GTID without downtime: set gtid_mode to OFF_PERMISSIVE, set enforce_gtid_consistency, restart if needed, then switch to ON, and finally restart replication.
Scenario 1 - New replica on legacy source: either add GTID to the source or create the replica with file/position coordinates.
Scenario 2 - Accidentally changed gtid_mode after upgrade: set it back to ON and restart both source and replica threads.
Standardise GTID settings through configuration management, audit server variables at startup, and monitor the replica SQL thread status. Always apply CHANGE MASTER statements that match the source's GTID mode.
Error 3170 ER_AUTO_POSITION_REQUIRES_GTID_MODE_ON can surface in similar conditions. Error 1776 ER_GTID_MODE_REQUIRED_ON further enforces GTID consistency. They share the same remedy - align GTID mode with replication settings.
The server variable @@global.gtid_mode is OFF while replication expects GTIDs.
An upgrade script or manual change removed gtid_mode=ON from my.cnf, causing the mismatch.
A replica cloned from a GTID-enabled source was pointed to a non-GTID master without updating MASTER_AUTO_POSITION.
The DBA executed CHANGE MASTER TO MASTER_AUTO_POSITION = 1 against a server that never had GTID enabled.
Raised when CHANGE MASTER has MASTER_AUTO_POSITION = 1 while GTID mode is not ON.
Occurs during online DDL when GTID_MODE is OFF and the operation needs GTID consistency.
Signals that the replica failed to fetch GTID execution history from the source.
Yes - switch through OFF_PERMISSIVE to ON, but you must restart replication threads after the change.
No, but it simplifies failover and eliminates manual file/position management, so it is highly recommended.
The overhead is minimal on modern hardware. Benefits in failover and consistency outweigh the cost.
Galaxy validates server variables before running CHANGE MASTER commands and highlights GTID mismatches, preventing accidental misconfiguration.