I have a pull request open for changing the MySQL adapters that I’d love to get reviewed. The gist is the current adapter code swallows all StandardError exceptions, which includes Mysql::Error and Mysql2::Error. During the process of moving over to a multi-master Galera cluster, we found that this behavior was causing our application to returns a successful response even though the database transaction failed to apply. Galera’s replication system is expected to return an error on COMMIT if the transaction failed the certification process. Similarly, it’s possible to have BEGIN fail if you have causal reads enabled and the database times out waiting for queue writesets to be applied.