diff --git a/clientv3/txn.go b/clientv3/txn.go index a09e2ec73a1..8822d60c56f 100644 --- a/clientv3/txn.go +++ b/clientv3/txn.go @@ -143,11 +143,12 @@ func (txn *txn) Commit() (*TxnResponse, error) { return (*TxnResponse)(resp), nil } - if txn.isWrite { + if isRPCError(err) { return nil, err } - if isRPCError(err) { + if txn.isWrite { + go kv.switchRemote(err) return nil, err }